Ident_Current在SQL 2005上返回NULL

时间:2009-04-22 21:36:33

标签: sql-server

ident_Current函数在sql server 2005上返回null。在查看一些文档后,看起来它需要db_owner权限才能拥有可见性元数据,但这只在sql server 2008的文档中指定。

有人可以确认sql server 2005是一样的吗?我找不到任何证明这一点的文件。

3 个答案:

答案 0 :(得分:5)

如果函数在没有权限选择表或视图的最后一个id的帐户下运行,则

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。