Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在同一个触发器内进行INSERT和AFTER INSERT替换?(sql server)_Sql Server_Sql Server 2008_Triggers - Fatal编程技术网

Sql server 如何在同一个触发器内进行INSERT和AFTER INSERT替换?(sql server)

Sql 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

是否可能在同一触发器内有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。

否,但为什么需要这样做?如果您自己控制插入(使用
而不是
),您应该能够在插入
代码后将
添加到末尾。

否,但为什么需要?如果您自己控制插入(使用
而不是
),您应该能够在插入后将
添加到末尾。

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