SELECT SCOPE_IDENTITY()
在什么情况下返回null?
我这样做:
Set rs = cn.Execute("SELECT SCOPE_IDENTITY()", , adCmdText)
capture_id = rs.Fields(0)
我得到capture_id=null
答案 0 :(得分:8)
更具体地说,SCOPE_IDENTITY()仅返回在与SCOPE_IDENTITY()调用相同的范围内生成的最新标识值。在您发布的示例中,SCOPE_IDENTITY()调用是批处理中的唯一语句(因此是当前范围内的唯一语句),因此它将返回null。如果要获取为特定表生成的最新标识值,请尝试IDENT_CURRENT('tablename')。这不受范围的限制,它只是为您提供为给定表生成的最新标识值。
答案 1 :(得分:1)
根据MSDN,“如果在范围内出现任何INSERT语句进入标识列之前调用该函数,则SCOPE_IDENTITY()函数将返回空值。”