原创日志

用sp_executesql 时获取SCOPE_IDENTITY()的问题

[ 2009-03-04 15:14:28 | 作者: admin ]
字号: | |
存储过程中遇到表名、字段为变量的时候不可避免的会使用
  exec sp_executesql @sql

当插入一条记录的时候,我们习惯用 SCOPE_IDENTITY() 来获取最后一条的ID号,
然而用在 sp_executesql 之后时,获取的值为NULL,无法正常得到ID,原因是当 exec sp_executesql 执行结束,这个所谓的“范围”也就结束了。要想得到ID,必须让 SCOPE_IDENTITY 在这个范围内,所以需要将 SCOPE_IDENTITY 放入@sql中

参考:
   select @Sql = N' insert into tao123 ; select @varNewId= SCOPE_IDENTITY() ; '
   execute sp_executesql @Sql ,N'@varNewId int OUTPUT',@varNewId=@newId output
[最后修改由 admin, 于 2009-03-04 15:31:07]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1212

这篇日志没有评论。

此日志不可发表评论。