Создать триггер в хранимой процедуре - PullRequest
2 голосов
/ 26 апреля 2019

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

Я получаю сообщение об ошибке и не могу его выполнить.

CREATE PROCEDURE EC5Trigger2
AS
  CREATE TRIGGER trVendorProductsPST
  ON VendorProducts
  FOR INSERT
  AS
  BEGIN
    SET NOCOUNT ON

    DECLARE  @SKU VARCHAR(64)
    SELECT @SKU = I.SKU FROM inserted AS I

    INSERT INTO ProductStockTransactions (SKU, stockingCode)
    VALUES (@SKU, 'A')
  END

  RETURN 0

1 Ответ

1 голос
/ 26 апреля 2019

Вот как вы создаете свой триггер внутри хранимой процедуры, используя динамический SQL, и это единственный способ сделать это.

CREATE PROCEDURE EC5Trigger2
AS
BEGIN
  SET NOCOUNT ON;

  DECLARE @TriggerCode NVARCHAR(max);

  SET @TriggerCode = 'CREATE TRIGGER trVendorProductsPST
  ON VendorProducts
  FOR INSERT
  AS
  BEGIN
    SET NOCOUNT ON
    DECLARE @SKU VARCHAR(64)
    SELECT @SKU = I.SKU from INSERTED as I

    INSERT INTO ProductStockTransactions (SKU, stockingCode)
      VALUES (@SKU, ''A'')
  END';

  EXEC(@TriggerCode);

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