Neh*_*att 4 t-sql sql-server triggers stored-procedures
我正在尝试在存储过程中创建一个触发器,因为当删除表时它将被删除。
我收到错误并且无法执行它。
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
Run Code Online (Sandbox Code Playgroud)
以下是如何使用动态 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;
Run Code Online (Sandbox Code Playgroud)