Sql server 如何在同一个触发器内进行INSERT和AFTER INSERT替换?(sql server)
是否可能在同一触发器内有INSERT和AFTER INSERTSql server 如何在同一个触发器内进行INSERT和AFTER INSERT替换?(sql server),sql-server,sql-server-2008,triggers,Sql Server,Sql Server 2008,Triggers,是否可能在同一触发器内有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(@t
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。否,但为什么需要这样做?如果您自己控制插入(使用
而不是),您应该能够在插入代码后将添加到末尾。否,但为什么需要?如果您自己控制插入(使用而不是),您应该能够在插入后将添加到末尾。@robinson我需要在表中插入之前获取ID,然后我需要在表中插入新ID,您理解了吗?@somazing:上面的代码从未执行插入。如何做到这一点(无论是手动ID还是标识/默认ID)应该很容易确定是否可以提供一个更有意义的示例。@robinson我需要在表中插入之前获取ID,然后我需要在表中插入新ID,您理解了吗?@Somazing:上面的代码从未执行插入。如何做到这一点(无论是手动ID还是身份/默认ID)应该很容易弄清楚是否可以提供一个更有意义的示例。这个问题是写出来的,所以我们无法真正帮助您。请包括代码,这是不是那么一般,没有意义。我想不出在什么情况下我会想在同一张桌子上做一个代替和之后。但从您的示例来看,我担心您编写的触发器一次只能处理一条记录,这是一种sql反模式,可能会导致数据完整性问题。编写此问题是为了让我们无法真正帮助您。请包括代码,这是不是那么一般,没有意义。我想不出在什么情况下我会想在同一张桌子上做一个代替和之后。但从您的示例来看,我担心您正在编写一个触发器,该触发器设计为一次只处理一条记录,这是一个sql反模式,可能会导致数据完整性问题。