SCOPE_IDENTITY能在这种情况下工作吗?
技术问答
194 人阅读
|
0 人回复
|
2023-09-14
|
我有PK,它是自增密钥。我需要将记录插入数据库,然后取回它PK并在另一个插入中使用。
f( N. ]. t$ F4 r然而,我想在一笔交易中做到这一点。可能吗?这个想法是,如果我必须执行的任何更新/插入都失败了,我可以回滚所有内容,但我的印象是我需要提交一次。
|0 V9 r/ A. H( y/ r! W4 J本来打算先在ado.net执行此操作,然后切换到存储过程,因为我认为这可能会解决这个问题。
# N9 q9 p- W3 o7 iSP在这种情况下会帮助我吗?; n e- {) ?) Q4 f+ K6 z
+ d4 A2 d$ j* `5 a6 ]% Q
解决方案: - f8 n: i1 p1 t" ^: F2 D
是的,scope_identity将为您提供最新的插入ID。或者,如果您使用的是SQL Server
$ R. V$ x7 A ]9 m! |可使用2005 output子句。' {* o* ?$ g: i5 {/ p, k H
INSERT INTO [MyTable]([MyCol])OUTPUT INSERTED.IDSELECT [MyCol] FROM [MySourceTable]; |
|
|
|
|
|