Я не опытный программист в SQL и, возможно, мой вопрос глуп, но я не нашел ответа в Google.У нас есть некоторая конструкция SQL для реализации пакетов изменений:
...
BEGIN TRY
BEGIN TRANSACTION;
<User Code Is Here>
...
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
...
END CATCH;
...
Как я могу поместить цепочку блоков CREATE TRIGGER вместо <User Code Is Here>
без ошибок:
-- Table1
CREATE TRIGGER trTable1_Dates ON dbo.Table1
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
...
SET NOCOUNT OFF;
END
GO
...
-- TableN
CREATE TRIGGER trTableN_Dates ON dbo.TableN
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
...
SET NOCOUNT OFF;
END
GO
Цельсоздать все триггеры или ничего и напечатать сообщение в блоке кода CATCH, если произойдет ошибка.
Отредактировано
Ошибки:
- Вкл.первый триггер
BEGIN
: SQL80001: Неверный синтаксис рядом с «НАЧАЛО».Ожидается EXTERNAL. - После первого запуска:
GO
: SQL80001: Неверный синтаксис рядом с GO. END TRY
: SQL80001: Неверный синтаксис рядом с «TRY».Ожидается конверсия. END CATCH
: SQL80001: Неверный синтаксис рядом с CATCH.Ожидается разговор.