nocount on och IDENTITY

Databaser & SQL

5 svar · 424 visningar · startad av tjocko

Medlem sedan mars 200422 inlägg
Trådstart#1

Hej.

ÄR det nödvändigt att sätta en SET NOCOUNT ON, om man vill returnera ID:et också?:

"SET NOCOUNT ON; INSERT INTO kunder (namn) VALUES ('baja') SELECT @@IDENTITY"

eftersom en INSERT sats returnerar ju alltid "rows affected", och då kanske det blir en blandning mellan "rows affected" och @@IDENTITY och så får man ett helt galet ID?, eller vad tror ni?.

Medlem sedan juni 200032 967 inlägg
#2

Det beror på hur man ser det. Du måste pilla till det på något sätt, och jag tycker att "SET NOCOUNT ON" är det lättaste sättet.

Annars får du nog tillbaka två recordsets, där det första är jättetomt.

Mvh

Medlem sedan mars 200422 inlägg
#3

Så det bästa bör vara att alltid sätta ett NOCOUNT ON när man vill returnera ett ID?

Medlem sedan juni 200032 967 inlägg
#4

Du behöver inte göra det om du bara ska göra en select. Men om du gör någonting annat först så är det en bra idé.

mvh

Medlem sedan mars 200422 inlägg
#5

ok så ovanstående SQL sats på en INSERT sats bör vara det ultimata då?, så förhindras en ev blandning mellan "rows affected" och det returnerade ID:et?.

Medlem sedan juni 200032 967 inlägg
#6

Det tycker jag.

374 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
245 ms — ändringar (db)