Avatar billede dotnewbi Juniormester
14. juli 2009 - 22:59 Der er 6 kommentarer og
1 løsning

Problem med return select + SCOPE_IDENTITY()

Hej Eksperter,

jeg har denne SP :

CREATE PROCEDURE [dbo].[AddUser]
@Name VarChar(255),
@LastName VarChar(255),
@UserName VarChar(255),
@Password VarChar(255)
AS
BEGIN

INSERT INTO SystemUsers (
Name,
LastName,
UserName,
Password
)
VALUES (
@Name,
@LastName,
@UserName,
@Password
)

SELECT SCOPE_IDENTITY()
END

Det der er problemmet er at jeg gerne vil have retuneret data fra alle felterne i den "row" der lige er blevet oprettet inklu. det ny oprettet id men SELECT SCOPE_IDENTITY()retuner kun "389"
som ikke er identisk med den oprettet primary key!?
Avatar billede arne_v Ekspert
14. juli 2009 - 23:10 #1
Hvis IDENTITY feltet er primary key, saa boer den returnere den oprettede primary key.

Du kan proeve at erstatte:

SELECT SCOPE_IDENTITY()

med:

SELECT * FROM systemusers WHERE idfelt=SCOPE_IDENTITY()
Avatar billede erikjacobsen Ekspert
14. juli 2009 - 23:27 #2
Må vi se din tabel-definition for "SystemUsers"
Avatar billede wagner Nybegynder
16. juli 2009 - 23:22 #3
Hvis du anvender sql server 2005 eller nye kan du kigge på output parameteren til at returnere den nye record.

http://msdn.microsoft.com/en-us/library/ms177564(SQL.90).aspx

Wagner
Avatar billede arne_v Ekspert
17. juli 2009 - 02:33 #4
Om du returnerer værdien i en out parameter eller som et result set som i den original kode bør ikke gøre nogen stor forskel.

Out parametre finde iøvrigt i T-SQL også før version 2005.
Avatar billede arne_v Ekspert
22. august 2009 - 17:20 #5
dotnewbi ?
Avatar billede dotnewbi Juniormester
29. marts 2013 - 23:04 #6
lukker!
Avatar billede Syska Mester
31. marts 2013 - 00:07 #7
Velkommen til den lukkede dotnewbi.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester