导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

使用 @@identity 返回刚才插入的自增列的ID值,总是出现错误。

暴走的车轮 2011-03-30 11:04:24
使用@@identity 返回刚刚插入的值,总是返回错误,使用DBCC CHECKIDENT修正后,正常几个,一会又发现错误了,总是比刚插入的ID值大。。。。。什么原因啊????
...全文
57 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
暴走的车轮 2011-03-30
[Quote=引用 4 楼 ljking0731 的回复:]
你可能有做触发器或其他的值.此时@@identity 返回的是最后影响的那个表的自增ID.

把@@identity 改成scope_identity() 
[/Quote]

用了这个,已经可以了,谢谢~~~~
回复
pt1314917 2011-03-30
[Quote=引用 6 楼 kdalan 的回复:]
具体情况是这样,一个表A ,我向表A里插入数据并返回插入的ID,表A里有触发器向表B里插入数据。。。。
[/Quote]

把你的语句和触发器语句贴出来,大家看看
回复
暴走的车轮 2011-03-30
具体情况是这样,一个表A ,我向表A里插入数据并返回插入的ID,表A里有触发器向表B里插入数据。。。。
回复
暴走的车轮 2011-03-30
如果有触发器怎么解决?我在查询分析器里直接操作表插入一条数据并返回,跟插入的数据的ID也不同啊~~!
回复
ljking0731 2011-03-30
你可能有做触发器或其他的值.此时@@identity 返回的是最后影响的那个表的自增ID.

把@@identity 改成scope_identity() 
回复
nevergu 2011-03-30
如果有触发器等,你可能获取的是触发器返回的值。所以注意作用域。试试
SCOPE_IDENTITY( )

回复
@@identity

返回当前会话插入到任意表生成的最后一个identity值(不受作用域限制)

也许别的地方还有插入数据发生!
回复
你的语句是怎样的!
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告