Database Programming: IDENT_CURRENT() Behavior Change In SQL Server 2005
An email recently crossed my inbox (if electrons are capable of crossing a virtual construct like an email folder.. an existential conversation for a different day) which discussed a previously unknown change in the behavior of the IDENT_CURRENT() function between SQL Server 2000 and SQL Server 2005.
In SQL Server 2000, IDENT_CURRENT() always returns a value when executed against a non-empty table with an identity column.
In SQL Server 2005, the IDENT_CURRENT() function will return a NULL value unless the user has one of the following permissions to the underlying table: ALTER, CONTROL, DELETE, INSERT, REFERENCES, SELECT, TAKE OWNERSHIP, UPDATE, VIEW DEFINITION.
This change is consistent with and a fallout of the new security model in SQL Server 2005, whereby the server "denies the existence" of objects to which the user lacks permissions.
-wp