Way*_*eio 5 sql sql-server triggers sql-server-2008-r2
我的应用程序将一些数据插入表中.
insert into this_Table (id, value, value)
然后我创建了一个触发器,它使用主键执行简单插入到另一个表中.
insert into temp_wc_triggertest values ('test', GETDATE())
我的问题是,应用程序尝试scope_identity从第一个插入中查找.但是,它会被触发器覆盖,触发器会将范围标识更改为主键temp_wc_triggertest.
如何阻止触发器覆盖scope_identity?
我意识到这里没有太多代码需要帮助,这通常被归类为一个不好的问题,但我目前无权访问完整的应用程序代码,因此我希望这是可以回答的问题.
这是在SQL Server 2008 R2上
编辑:我看过代码,它确实使用scope_identity
它覆盖作用域标识的原因仍然不清楚,它可能与提到的错误有关。不过发现了一个修复方法:
创建了临时表“temp_wc”
然后在触发器结束时,为该表打开身份插入,并为触发器触发后我们要保留的 ID 完成插入。该方法可以被认为是再次覆盖被覆盖的作用域标识。
SET IDENTITY_INSERT ON
INSERT INTO temp_wc VALUES (@ID, 'fix scope identity error')
| 归档时间: | 
 | 
| 查看次数: | 3352 次 | 
| 最近记录: |