Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 print @@IDENTITY - уменьшенное значение  [new]
grabli092
Member

Откуда:
Сообщений: 6
Господа, подскажите, плиз, вопрос теоретический.
в таблице два поля и 10 строк.
Поле 1 - primary key identity
вставляем еще пару строк, после каждой вставки делаем print @@IDENTITY
т.е. вставили строку 11
print @@IDENTITY вывело 11
далее вставили строку 12
print @@IDENTITY вывело 10

в теории какие могут быть случаи, в которых возможна такая ситуация и как это можно вылечить?
что бы в итоге print @@IDENTITY вывело правильное значение , в данном случае 12
спасибо
7 июн 21, 11:32    [22332154]     Ответить | Цитировать Сообщить модератору
 Re: print @@IDENTITY - уменьшенное значение  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8690
grabli092,

ident_current() либо scope_identity(), читайте справку по @@identity.
7 июн 21, 11:35    [22332157]     Ответить | Цитировать Сообщить модератору
 Re: print @@IDENTITY - уменьшенное значение  [new]
grabli092
Member

Откуда:
Сообщений: 6
Владислав Колосов, рыл я справку насколько смог, но так и не понял в каких случаях возможно уменьшение
@@IDENTITY
разве что произошла какая то явная вставка в поле c IDENTITY, но тогда должно сработать ограничение PRIMARY KEY

Сообщение было отредактировано: 7 июн 21, 11:34
7 июн 21, 11:39    [22332159]     Ответить | Цитировать Сообщить модератору
 Re: print @@IDENTITY - уменьшенное значение  [new]
Кесарь
Member

Откуда:
Сообщений: 651
grabli092,

Функции @@IDENTITY и SCOPE_IDENTITY возвращают последнее значение идентификатора, сформированное в любой таблице в текущем сеансе. Однако функция SCOPE_IDENTITY возвращает значение только в пределах текущей области, в то время как функция @@IDENTITY не ограничена определенной областью.

Функция IDENT_CURRENT не ограничена областью действия и сеансом, но ограничена указанной таблицей. Функция IDENT_CURRENT возвращает значение идентификатора, сформированное для определенной таблицы в любом сеансе и в любой области. Дополнительные сведения см. в статье IDENT_CURRENT (Transact-SQL).
7 июн 21, 11:43    [22332162]     Ответить | Цитировать Сообщить модератору
 Re: print @@IDENTITY - уменьшенное значение  [new]
grabli092
Member

Откуда:
Сообщений: 6
Кесарь, Спасибо !! кажется до меня дошло!!
7 июн 21, 11:46    [22332165]     Ответить | Цитировать Сообщить модератору
 Re: print @@IDENTITY - уменьшенное значение  [new]
Кесарь
Member

Откуда:
Сообщений: 651
grabli092
Кесарь, Спасибо !! кажется до меня дошло!!


Ну слава богу! :)


Всегда пжлст.
7 июн 21, 12:01    [22332178]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить