DinoMedlem sedan sep. 20011 914 inlägg Har en enkel select och sen vill jag ha dess id med @@IDENTITY, men det blir null. Varför? Första selecten retunerar en rad som synses.
SELECT TOP 1 ord_id, ord_cust_id, ord_message
FROM orders
WHERE ord_handle_id = 0
SELECT @@IDENTITY --Denna selecten har jag bara för att se om något retuneras
Och sen undrar jag om man skall använda:
SELECT SCOPE_IDENTITY()
eller
SELECT @@IDENTITY
@ndersMedlem sedan juni 200032 969 inlägg Har du gjort någon INSERT i tabellen då? @@IDENTITY returnerar ID på den post som senast lades in med INSERT i tabellen av aktuell anslutning. Har du inte gjort INSERT kan inget räknarvärde returneras.
Mvh
Om du vill kolla om något retuneras kolla då på den första sql raden. Och kolla om det finns något där.
DinoMedlem sedan sep. 20011 914 inlägg Nä, det har jag ju inte. Läste i dokumentationen och där stod det SELECT INTO, måste ha missat INTO.
Ok, glöm den frågan då. Något svar på andra frågan? I dokumentationen, igen, så står det att "SCOPE_IDENTITY returns the value only within the current scope, @@IDENTITY is not limited to a specific scope". Vad är bäst att använda?
@ndersMedlem sedan juni 200032 969 inlägg Kan du berätta vad det är du vill göra?
DinoMedlem sedan sep. 20011 914 inlägg Nä, hittade precis SCOPE_IDENTITY. Har använt @@IDENTITY förut, så nu blev jag bara allmänt nyfiken på vad som skall användas när.
LarsGMedlem sedan dec. 200012 464 inlägg scope_identity ger det värdet som senast genererades i samma scope (rutin/trigger) som där du använder funktionen. I de flesta fall är det samma värde som @@identity.
Det fall som skiljer sig åt är om du gör insert på en tabell som har en insert trigger där du gör insert på en tabell som också har en räknare.
I det fallet så innehåller @@identity det värde som genererades för inserten i triggern och scope_identity innehåller det värde som genererades för insert i tabellen som har en trigger.
DinoMedlem sedan sep. 20011 914 inlägg Ok, då vet jag för möjliga framtida bruk. Tack. :)