instead of触发器如何执行触发它的那条sql语句
时间: 2023-07-12 10:35:29 浏览: 74
替代触发器-SQL语句详解
如果您想在执行 instead of 触发器之后执行触发它的那条 SQL 语句,可以使用 OUTPUT 关键字。在触发器中,使用 OUTPUT inserted 或 OUTPUT deleted,可以将触发器操作所影响的行返回给调用方。例如:
```
CREATE TRIGGER insteadOfTrigger ON MyTable
INSTEAD OF INSERT
AS
BEGIN
DECLARE @InsertedRows TABLE (ID INT)
INSERT INTO MyTable (Column1, Column2)
OUTPUT inserted.ID INTO @InsertedRows
SELECT Column1, Column2
FROM inserted
-- 执行触发器操作后,执行触发器的那条 SQL 语句
SELECT *
FROM MyTable
WHERE ID IN (SELECT ID FROM @InsertedRows)
END
```
在这个例子中,我们使用 OUTPUT inserted.ID 将插入的行的 ID 值返回到 @InsertedRows 表变量中。然后,我们使用 @InsertedRows 变量中的 ID 值来查询 MyTable 表中的相应行。这样可以确保触发器操作和触发器的 SQL 语句都被执行。
阅读全文