小编Rod*_*iro的帖子

INSTEAD OF INSERT 触发器内的 SET IDENTITY_INSERT 不起作用

我正在尝试在而不是插入触发器中执行身份插入,但是当我尝试将数据插入数据时,它会抛出错误消息“消息 544,级别 16,状态 1,第 36 行无法插入身份的显式值IDENTITY_INSERT 设置为 OFF 时表 'PixTest' 中的列。”。

我正在使用安装在 Windows 8 64 位上的 SQL SERVER 2014 Developer Edition 64 位。

以下是一些可能有帮助的示例代码:

CREATE TABLE PixTest
(
      ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
      TESTE VARCHAR(10)
)
GO

CREATE TRIGGER AutoIncrement_Trigger ON PixTest
instead OF INSERT AS
BEGIN

    DECLARE @ID INT;
    SELECT @ID=ID FROM inserted;



    IF COALESCE(@ID,0)<> 0
        BEGIN

            SET IDENTITY_INSERT PixTest ON
            INSERT INTO PixTest(ID, TESTE) 
            SELECT ID,TESTE FROM inserted
            SET IDENTITY_INSERT PixTest off

        END

    ELSE

        INSERT INTO …
Run Code Online (Sandbox Code Playgroud)

t-sql

5
推荐指数
1
解决办法
3212
查看次数

标签 统计

t-sql ×1