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")用吗?
希望哪位高人可以指点一二!