webForumDet fria alternativet

nocount on och IDENTITY

5 svar · 387 visningar · startad av tjocko

tjockoMedlem sedan mars 200422 inlägg
#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?.

@ndersMedlem sedan juni 200032 969 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

tjockoMedlem 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?

@ndersMedlem sedan juni 200032 969 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

tjockoMedlem 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?.

@ndersMedlem sedan juni 200032 969 inlägg
#6

Det tycker jag.

126 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)