Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Alexsalog Member Откуда: Сообщений: 4116 |
Можно ли в MS SQL как то обращаться к именам таблицы или курсора по имени, через функцию, вместо генерации на лету sql запроса. Задача - добавлять записи в произвольные таблицы общей процедурой. |
17 фев 16, 04:39 [18827162] Ответить | Цитировать Сообщить модератору |
Alexsalog Member Откуда: Сообщений: 4116 |
Поправка* |
||
17 фев 16, 04:41 [18827163] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Москва Сообщений: 4422 |
Можно. Только выйдет очень сложно. Придется сопоставить входные параметры (имя таблицы и поля) куску кода. Что-то типа ...@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] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Универсальная процедура для выполнения любой команды для любой таблицы ? |
||
17 фев 16, 09:08 [18827389] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Москва Сообщений: 4422 |
На любой СУБД любой версии, любой операционной системы под любым пользователем с любым паролем! |
||||
17 фев 16, 10:38 [18827849] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8494 |
Alexsalog, напишите CLR процедуру. Но то, что вы хотите даже не моветон, а идет вразрез с парадигмой СУБД. Код должен быть детерменирован равно как и объекты базы. В общем, никогда так не делайте. |
17 фев 16, 11:12 [18828110] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47066 |
|
||||
17 фев 16, 11:14 [18828135] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
мечта начинающего девелопера ![]() |
||||
17 фев 16, 12:25 [18828748] Ответить | Цитировать Сообщить модератору |
Winnipuh Member [заблокирован] Откуда: Київ Сообщений: 10428 |
+На любой СУБД |
||||
17 фев 16, 12:26 [18828755] Ответить | Цитировать Сообщить модератору |
Crimean Member Откуда: Сообщений: 13147 |
Alexsalog, можно, только это делается не на MS SQL. а ровно снаружи. |
17 фев 16, 15:47 [18830340] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
|
||
17 фев 16, 23:25 [18832655] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |