Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Обращение к полям по имени вместо генерации sql запроса  [new]
Alexsalog
Member

Откуда:
Сообщений: 4116
Можно ли в MS SQL как то обращаться к именам таблицы или курсора по имени, через функцию, вместо генерации на лету sql запроса.
Задача - добавлять записи в произвольные таблицы общей процедурой.
17 фев 16, 04:39    [18827162]     Ответить | Цитировать Сообщить модератору
 Re: Обращение к полям по имени вместо генерации sql запроса  [new]
Alexsalog
Member

Откуда:
Сообщений: 4116
Alexsalog
Можно ли в MS SQL как то обращаться к именам полям* таблицы или курсора по имени, через функцию, вместо генерации на лету sql запроса.
Задача - добавлять записи в произвольные таблицы общей процедурой.


Поправка*
17 фев 16, 04:41    [18827163]     Ответить | Цитировать Сообщить модератору
 Re: Обращение к полям по имени вместо генерации sql запроса  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4422
Alexsalog
Alexsalog
Можно ли в MS SQL как то обращаться к именам полям* таблицы или курсора по имени, через функцию, вместо генерации на лету sql запроса.
Задача - добавлять записи в произвольные таблицы общей процедурой.


Поправка*

Можно.
Только выйдет очень сложно.
Придется сопоставить входные параметры (имя таблицы и поля) куску кода.
Что-то типа
...@Table, @fField, @Value 

CASE @Table 
      WHEN 'TABLE_NAME1' CASE @Field WHEN 'FIELD_NAME1' THEN update TABLE_NAME1 SET FIELD_NAME1 = @Value WHERE ....
                                     WHEN 'FIELD_NAME2' THEN update TABLE_NAME1 SET FIELD_NAME2 = @Value WHERE ....
... 
      WHEN 'TABLE_NAME2' CASE @Field WHEN 'FIELD_NAME1' THEN update TABLE_NAME2 SET FIELD_NAME1 = @Value WHERE ....
                                     WHEN 'FIELD_NAME2' THEN update TABLE_NAME2 SET FIELD_NAME2 = @Value WHERE ....
              

Думаю, что вы уже оценили "монструозность" сего подхода?
17 фев 16, 08:39    [18827307]     Ответить | Цитировать Сообщить модератору
 Re: Обращение к полям по имени вместо генерации sql запроса  [new]
Glory
Member

Откуда:
Сообщений: 104751
Alexsalog
Задача - добавлять записи в произвольные таблицы общей процедурой.

Универсальная процедура для выполнения любой команды для любой таблицы ?
17 фев 16, 09:08    [18827389]     Ответить | Цитировать Сообщить модератору
 Re: Обращение к полям по имени вместо генерации sql запроса  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4422
Glory
Alexsalog
Задача - добавлять записи в произвольные таблицы общей процедурой.

Универсальная процедура для выполнения любой команды для любой таблицы ?

На любой СУБД любой версии, любой операционной системы под любым пользователем с любым паролем!
17 фев 16, 10:38    [18827849]     Ответить | Цитировать Сообщить модератору
 Re: Обращение к полям по имени вместо генерации sql запроса  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8494
Alexsalog,

напишите CLR процедуру. Но то, что вы хотите даже не моветон, а идет вразрез с парадигмой СУБД. Код должен быть детерменирован равно как и объекты базы. В общем, никогда так не делайте.
17 фев 16, 11:12    [18828110]     Ответить | Цитировать Сообщить модератору
 Re: Обращение к полям по имени вместо генерации sql запроса  [new]
iap
Member

Откуда: Москва
Сообщений: 47066
SQL2008
Glory
пропущено...

Универсальная процедура для выполнения любой команды для любой таблицы ?

На любой СУБД любой версии, любой операционной системы под любым пользователем с любым паролем!
После этого человек не нужен. Можно увольняться!
17 фев 16, 11:14    [18828135]     Ответить | Цитировать Сообщить модератору
 Re: Обращение к полям по имени вместо генерации sql запроса  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
Alexsalog
Задача - добавлять записи в произвольные таблицы общей процедурой.

Универсальная процедура для выполнения любой команды для любой таблицы ?


мечта начинающего девелопера
17 фев 16, 12:25    [18828748]     Ответить | Цитировать Сообщить модератору
 Re: Обращение к полям по имени вместо генерации sql запроса  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
SQL2008
Glory
пропущено...

Универсальная процедура для выполнения любой команды для любой таблицы ?

На любой СУБД любой версии, любой операционной системы под любым пользователем с любым паролем!


+На любой СУБД
17 фев 16, 12:26    [18828755]     Ответить | Цитировать Сообщить модератору
 Re: Обращение к полям по имени вместо генерации sql запроса  [new]
Crimean
Member

Откуда:
Сообщений: 13147
Alexsalog,

можно, только это делается не на MS SQL. а ровно снаружи.
17 фев 16, 15:47    [18830340]     Ответить | Цитировать Сообщить модератору
 Re: Обращение к полям по имени вместо генерации sql запроса  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Crimean
Alexsalog,

можно, только это делается не на MS SQL. а ровно снаружи.
И называется ORM.
17 фев 16, 23:25    [18832655]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить