webForumDet fria alternativet
Logga in / Bli medlem

@@identity

ASP

4 svar · 165 visningar · startad av kristoffer

Medlem sedan juni 20001 257 inlägg
Trådstart#1

Det här fungerar inte:

strSQL = "INSERT INTO tabell1 (fld1, fld2) VALUES('string1', 'string2')"
strSQL = strSQL & "; UPDATE tabell2 SET myValue = 1"
strSQL = strSQL & "; SELECT @@IDENTITY"
Set objRS = objConn.Execute(strSQL)
intId = objRS(0)

Det här fungerar:

strSQL = "INSERT INTO tabell1 (fld1, fld2) VALUES('string1', 'string2')"
strSQL = strSQL & "; UPDATE tabell2 SET myValue = 1"
objConn.Execute strSQL
strSQL = "SELECT @@IDENTITY"
Set objRS = objConn.Execute(strSQL)
intId = objRS(0)

Varför?

Medlem sedan okt. 20005 273 inlägg
#2

har du access så funkar i multipla sql kommandon .. :(

Medlem sedan juni 20001 257 inlägg
#3

Jag har SQL Server

Medlem sedan dec. 200012 464 inlägg
#4

Om du har multipla satser så där så får du ett recordset för varje sqlsats. Dvs, du får två stycken tomma och ett som innehåller värdet för @@identity

strSQL = "set nocount on;INSERT INTO tabell1 (fld1, fld2) VALUES('string1', 'string2')"
strSQL = strSQL & "; UPDATE tabell2 SET myValue = 1"
strSQL = strSQL & "; set nocount off; SELECT @@IDENTITY"
Set objRS = objConn.Execute(strSQL)
intId = objRS(0)

Om man lägger till set nocount on så skapas det inga recordset.

Medlem sedan juni 20001 257 inlägg
#5

Tackar. Fungerar.

392 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
121 ms — deklarationer (db)
132 ms — hämta statistik (db)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)