Есть триггер на INSERT и UPDATE. Есть почти 200 таблиц. Как создать в цикле (при помощи курсора?) по триггеру для каждой таблички?
При помощи функции sp_executesql не хочет, так как говорит, что пакет должен начинаться с CREATE, а не иначе, то бишь заранее не присвоишь имя переменной и не используешь его в создании триггера.
Примечание:
Если начинать с самого простого, то при создании процедуры
create procedure test
@s1 nvarchar(100)
as
begin
EXEC sp_executesql
N'CREATE TRIGGER row_existence',
@s1,
N' ON t_Actions
FOR INSERT, UPDATE
AS
Print 2;'
end;
и запросе
Exec test N'2'
выдает такие ошибки:
Сообщение 102, уровень 15, состояние 1, строка 1
Неправильный синтаксис около конструкции "2".
Сообщение 111, уровень 15, состояние 1, строка 1
CREATE TRIGGER должна быть первой инструкцией в пакетном запросе.
Примечание:
Еще раз объясню, что не получается создать триггер для каждой таблицы при помощи конструкции:
Процедура, в ней курсор, в котором создается курсор для каждой таблицы.
Есть другие варианты массового создания одним файлом триггеров для каждой таблицы в БД?
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.