webForumDet fria alternativet
Logga in / Bli medlem

@@identity funkar inte efter trigger

Databaser & SQL

8 svar · 360 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Trådstart#1

Efter att jag lagt till en trigger på en tabell så funkar inte @@identity. Är det så bara eller har jag gjort fel?

MS Sql

Medlem sedan juni 200032 967 inlägg
#2

Använd scope_identity istället.

Läs om skillnaderna: http://www.webforum.nu/showthread.php?s=&postid=832490#post832490

mvh

Medlem sedan nov. 20017 144 inlägg
#3

Jag testade det också:

SELECT id from tbl WHERE id = SCOPE_IDENTITY()

Är det en felaktig syntax?

Medlem sedan juni 200032 967 inlägg
#4

Det ser inte konstigt ut tycker jag. Vad får du för resultat av den?

Medlem sedan nov. 20017 144 inlägg
#5

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

Medlem sedan nov. 20017 144 inlägg
#6

Den verkar returnera sp:n i triggerns id.
Är det IDENT_Current jag skall använda i stället kanske?

Medlem sedan nov. 20017 144 inlägg
#7

Visst: SELECT IDENT_Current('tbl') verkar funka.
Känns iofs lite nojjigt att lita på att det är rätt id eftersom att det verkar hämta det senaste inlagda id't och då kan det vara ett annat scope?
Eller?

Medlem sedan dec. 200012 464 inlägg
#8

Använd inte ident_current, det är scope_identity() som du skall använda (och då i samma session som din insert).

Medlem sedan nov. 20017 144 inlägg
#9

Visst, jag hade tänkt lite fel där. Det funkar om jag lägger in det i samma veva som min insert.

381 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
124 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)