Сервер SQL: как получить последнюю запись, которая была вставлена? - PullRequest
0 голосов
/ 20 августа 2010

Я делаю это:

With rs
    .AddNew ' create a new record
    ' add values to each field in the record
    .Fields("datapath") = dpath
    .Fields("analysistime") = atime
    .Fields("reporttime") = rtime
    .Fields("lastcalib") = lcalib
    .Fields("analystname") = aname
    .Fields("reportname") = rname
    .Fields("batchstate") = bstate
    .Fields("instrument") = instrument
    .Update ' stores the new record
End With

' get the last id
Set rs = cn.Execute("SELECT SCOPE_IDENTITY()", , adCmdText)

это не работает должным образом. возвращается NULL

Ответы [ 2 ]

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

Это не работает, потому что ваши обновления и ваше второе выполнение находятся в разных областях.Вы можете выбрать SELECT IDENT_CURRENT ('tablename')

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

IDENT_CURRENT подходит для однопользовательской среды.

При обновлении вы уже записаны.

.Update
lTheNewID = .Fields("ThisTableID")

lTheNewID будет содержать значение новой записи.

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