почему SELECT SCOPE_IDENTITY () возвращает ноль? - PullRequest
0 голосов
/ 20 августа 2010

в каком случае SELECT SCOPE_IDENTITY() возвращает ноль?

я делаю это:

Set rs = cn.Execute("SELECT SCOPE_IDENTITY()", , adCmdText)
capture_id = rs.Fields(0)

и я получаю capture_id=null

Ответы [ 2 ]

8 голосов
/ 20 августа 2010

Точнее говоря, SCOPE_IDENTITY () возвращает только самое последнее значение идентификатора, созданное в той же области, что и вызов SCOPE_IDENTITY ().В опубликованном примере вызов SCOPE_IDENTITY () является единственным оператором в пакете (следовательно, единственным оператором в текущей области), поэтому он возвращает ноль.Если вы хотите получить последнее значение идентификатора, сгенерированное для конкретной таблицы, попробуйте IDENT_CURRENT ('tablename').Это не относится к области действия, оно просто дает вам последнее значение идентификатора, сгенерированное для данной таблицы.

1 голос
/ 20 августа 2010

Согласно MSDN , «функция SCOPE_IDENTITY () будет возвращать нулевое значение, если функция вызывается до того, как какие-либо операторы INSERT в столбце идентификаторов появятся в области действия».

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