SQL Server触发器给带来的问题:标识值不正确

老夏 2007-09-25 10:08:10
我在A表中有一个名为“ID”的标识列,对Insert操作有一个触发器,用于监视A表的记录变化,在触发器中向log_A表插入记录,log_A表也有一个标识列,但名为“序号”。在VC6.0中,使用ADO的_RecordsetPtr打开A表记录集后,调用AddNew()添加记录,然后调用Update()更新,随后对该记录用GetCollect(L"ID")取“ID”字段的值,意想不到的事发生了,A表“ID”字段取到的是log_A表“序号”字段的值。
我知道,使用@@IDENTITY则取到的是log_A表的最后生成的标识值,使用SCOPE_IDENTITY 和 IDENT_CURRENT则可以取到A表最后生成的标识值,可以解决上面的问题。
但我想弄清楚,GetCollect(L"ID")对于标识列的值是怎么取的,难道SQL Server内部是用@@IDENTITY取到值返回给ADO的GetCollect(L"ID")用吗?
希望哪位高人可以指点一二!
...全文
161 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
老夏 2007-10-23
  • 打赏
  • 举报
回复
好像很少人会遇到这个问题,没人回答

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧