Из документов :
Возвращает последнее значение идентификатора, вставленное в столбец идентификатора в той же области.Область действия - это модуль: хранимая процедура, триггер, функция или пакет.Поэтому два оператора находятся в одной и той же области, если они находятся в одной и той же хранимой процедуре, функции или пакете.
Это означает, что вы должны отправить SCOPE_IDENTITY
в одном пакете (то есть SQL
call) с вашим запросом вставки.
Это невозможно с такими методами, как AddNew
, поэтому вы должны использовать явный оператор INSERT
, за которым следует SELECT SCOPE_IDENTITY
.
Примерно так:
SQL = "INSERT INTO mytable (datapath, analysistype, …) VALUES (@datapath, @analysistime, …) SELECT SCOPE_IDENTITY()"
Set cmd = Server.CreateOject("ADODB.Command")
With cmd
.CommandType = adCmdText
.CommandText = SQL
.Parameters.Append .CreateParameter("@datapath", adVarWChar, adParamInput,, dpath)
…
End With
Set rs = cmd.Execute
Set rs = rs.NextRecordset