Ident_Current возвращает NULL в SQL 2005 - PullRequest
1 голос
/ 23 апреля 2009

Функция ident_Current возвращает ноль на SQL Server 2005. После просмотра некоторой документации кажется, что ей нужны разрешения db_owner для получения метаданных видимости, но это указано только в документации для SQL Server 2008.

Может кто-нибудь подтвердить, что то же самое для SQL Server 2005? Я не могу найти никаких документов, подтверждающих это.

Ответы [ 3 ]

5 голосов
/ 23 апреля 2009

IDENT_CURRENT() вернет ноль, если функция запущена под учетной записью, у которой нет прав для выбора последнего идентификатора для таблицы или представления.

При использовании IDENT_CURRENT() следует учитывать и то, что возвращаемый идентификатор может быть для любой области и любого сеанса; это может быть преднамеренным с вашей стороны, но я обычно использую SCOPE_IDENTITY(), когда мне нужно получить идентификатор для последней манипулированной записи

0 голосов
/ 16 мая 2009

Чтобы использовать ident_current или любую другую функцию для получения последнего идентификатора, у пользователя должны быть права на чтение метаданных, поэтому ему требуется db_onwer в этой базе данных.

0 голосов
/ 23 апреля 2009

Русь права. Я хочу отметить, что у нас был разработчик, использующий Ident_current для получения последнего идентификатора, и его процесс выполнялся одновременно с импортом данных, и он получил идентификатор записи, которую выполнял импорт, и это испортило целостность данных в базе данных. поскольку дочерняя таблица была теперь связана с неправильной записью. Найти и исправить тоже было действительно проблемой. Так что будьте очень осторожны при использовании идент_куррента. В большинстве случаев вам нужно использовать scope_identity ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...