webForumDet fria alternativet
Logga in / Bli medlem

nocount on och IDENTITY

Databaser & SQL

5 svar · 389 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.

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