Как получить конкретное поле записи, только что вставленной в БД - PullRequest
3 голосов
/ 03 августа 2011

Я использую SQL Server 2008. Я вставляю данные, используя .Addnew

У меня есть такой код

strSQL = "SELECT * FROM table"
rs.CursorType = 2
rs.LockType = 3
rs.Open strSQL, adoCon
rs.AddNew
rs.fields("pid") = pid
rs.fields("name") = name
rs.update
rs.requery
response.write rs.fields("GUID")
rs.close

Я не получаю сообщение об ошибке - я ничего не печатаю

Я делаю в классическом ASP, нет хранимых процедур, ничего особенного столбец guid не является ключом!у него есть значение по умолчанию newid (), и оно есть в БД, я просто не могу его получить

что я делаю не так?

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Добавьте SELECT @@IDENTITY в оператор SQL, чтобы получить последнюю вставленную идентификацию:

Dim rs , cmd
Set rs = server.createobject("ADODB.Recordset")
Set cmd = server.createobject("ADODB.Command")

cmd.ActiveConnection = GetConnectionString()
cmd.CommandType = adCmdText
cmd.CommandText = "INSERT into Table (pid, name) values (1, 'the name') SELECT @@IDENTITY"


rs.CursorLocation = adUseClient
rs.Open cmd, , adOpenForwardOnly, adLockReadOnly

response.write "Last GUID: " + rs(0)
0 голосов
/ 05 августа 2011

В этой статье описываются способы получения значения идентификатора с помощью примера кода.Если после этого вам понадобится дополнительная помощь, сообщите нам

http://databases.aspfaq.com/general/how-do-i-get-the-identity/autonumber-value-for-the-row-i-inserted.html

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