【发布时间】:2011-08-05 17:56:03
【问题描述】:
INSTEAD INSERT 和 AFTER INSERT 是否可能在同一个触发器中?
CREATE TRIGGER tgInsertCompare
ON trigger_insert_teste
INSTEAD OF INSERT
AS
DECLARE @testeID2 int
SET @testeID2 = (SELECT TOP 1 id FROM trigger_insert_teste ORDER BY id DESC)
PRINT(@testeID2)
GO
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @testeID int
SET @testeID = (SELECT TOP 1 id FROM trigger_insert_teste ORDER BY id DESC)
PRINT(@testeID)
END
GO
使用 SQL Server 2008。
【问题讨论】:
-
这个问题是写出来的,所以我们不能真正帮助你。请包含不那么笼统以至于没有意义的代码。我想不出在任何情况下我都想为同一张桌子做一个代替和一个之后。但从你的例子来看,我担心你正在编写一个触发器,旨在一次只处理一条记录,这是一种 sql 反模式,可能会导致数据完整性问题。
标签: sql-server sql-server-2008 triggers