日期:2014-05-17  浏览次数:20428 次

[ODBC] 插入一条记录时,如何使用SELECT @@IDENTITY来获取新插入的自增id?
我要插入的表有一个自增ID,我想在插入完后获取该ID值
我知道可以通过在插入语句的末尾加上"SELECT @@IDENTITY" 来实现,
但是当执行完SQLExecDirect()函数后,用什么函数获取该ID值呢? 我用SQLNumResultCols()函数获取的列数是0,直接用SQLBindCol()也得不到ID值.

怎么获取?

------解决方案--------------------
引用:
...
我这里问的不是SCOPE_IDENTITY 和 @@IDENTITY的区别,
我只是后来觉得SCOPE_IDENTITY更好.

不知道你是否明白,为何不能把SCOPE_IDENTITY()或@@IDENTITY写在insert语句之后?而必须是重新做一次查询才能获取到自增ID?


1、楼主用C++执行一次insert语句以后,再执行select SCOPE_IDENTITY()语句是可以的,此外建议用@@IDENTITY了
2、楼主在同一个函数里将select SCOPE_IDENTITY()放在insert语句后,再执行函数是出不来,除非作为输出变量才行