【发布时间】:2013-05-10 09:13:32
【问题描述】:
您好,我在下面有一些代码,我希望在执行 SQL 语句时返回结果标识号。
set objCnn = Server.CreateObject("ADODB.connection")
CurrMachine = "my-test-box"
ObjCnn.Open("Provider=SQLOLEDB;Persist Security Info=False;User ID=Test;password=Test123;Language=British;Initial Catalog=TestDB;Data Source=" & CurrMachine)
strSQL = "INSERT INTO dbo.xyz" & _ " (field) " & _ " VALUES (" & date & ")" & _ " SELECT @@Identity "
objCnn.Execute strSQL
我添加了 SELECT @@Identity,当我在 SQL 中执行此操作时,它将返回唯一的 ID 号。如果我 response.write strSQL 我得到的是 SQL 字符串而不是结果文本。
干杯!
编辑
给你理查德
set objCnn = Server.CreateObject("ADODB.connection")
CurrMachine = "my-test-srv"
ObjCnn.Open("Provider=SQLOLEDB;Persist Security Info=False;User ID=Test;password=Test123;Language=British;Initial Catalog=Test;Data Source=" & CurrMachine)
strSQL = "INSERT INTO xyz" & _
" ([date])" & _
" VALUES ( " & date & " )" & _
" SET NOCOUNT OFF; SELECT SCOPE_IDENTITY() ID; "
Set rs = objCnn.Execute(strSQL)
response.write rs("ID")
【问题讨论】:
-
@gbn 不是正确的重复链接。 asp-classic != c#.net
-
@RichardTheKiwi:够近了
-
@gbn 您的回答涉及身份值的生成。这个问题的答案的症结在于 strSQL 是程序化的,asp-classic - strSQL 在调用
.Execute后不会发生变异。
标签: sql asp-classic ado