ident_Current
函数在sql server 2005上返回null。在查看一些文档后,看起来它需要db_owner权限才能拥有可见性元数据,但这只在sql server 2008的文档中指定。
有人可以确认sql server 2005是一样的吗?我找不到任何证明这一点的文件。
答案 0 :(得分:5)
IDENT_CURRENT()
将返回null。
使用IDENT_CURRENT()
时要记住的另一件事是返回的id可以用于任何范围和任何会话;这可能是你的故意,但我通常在需要获取最后一个被操纵记录的id时使用SCOPE_IDENTITY()
答案 1 :(得分:0)
Russ是对的。我想指出,我们有一个开发人员使用Ident_current来获取最后一个身份,并且他的proc同时作为dataimport运行,并且他获得了导入运行的记录的标识,这搞砸了数据库中的数据完整性因为子表现在与错误记录有关。找到并解决这个问题也是一个问题。所以使用ident_current要非常小心。在大多数情况下,scope_identity()就是您想要的。
答案 2 :(得分:0)
使用ident_current或任何其他函数来获取最后一个标识,用户需要具有读取元数据的权限,因此它需要在该数据库上使用db_onwer。