присвоить значения столбца переменной в mssql - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь присвоить все имена таблиц схемы переменной. Позже я хочу создать триггер обновления для каждой таблицы. Я извлекаю таблицы, используя:

select table_name from information_schema.tables;

, когда я делаю следующее, я получаю нулевые значения:

declare @tablename nvarchar(max)
select table_name = @tablename from information_schema.tables;

Я использую mssql в SSMS2016, может кто-нибудь сказать мне, как яможно присвоить имена таблиц переменной?

1 Ответ

1 голос
/ 15 октября 2019

Это действительно хороший вопрос, если это хорошая идея создать триггер для каждой и любой таблицы, но - когда мне нужно создать операторов - я предлагаю это:

select CONCAT('CREATE TRIGGER ',QUOTENAME(CONCAT(table_name,'_trigger')),' ON ',QUOTENAME(table_name),' AFTER UPDATE AS BEGIN PRINT ''yeah!''; END',CHAR(13),CHAR(10),'GO' )
from information_schema.tables
where TABLE_TYPE='BASE TABLE';

Отправьте вывод в текст, и вы получите:

CREATE TRIGGER [SomeTable_trigger] ON [SomeTable] AFTER UPDATE AS BEGIN PRINT 'yeah!'; END
GO
CREATE TRIGGER [Another_trigger] ON [Another] AFTER UPDATE AS BEGIN PRINT 'yeah!'; END
GO
... more of this...
GO
...

Следующим шагом было скопировать все эти операторы в новое окно запроса и адаптировать их к вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...