ADO: Fange ny augo genereret primær nøgle efter insert into

Tags:    vb.net

Jeg er helt ny i brugen af MS SQL Server., og er vant til at bruge MySQL. I Mysql er det muligt at få adgang til den sidst oprettede primære nøgle (auto_increment) efter en insert kommando.

Jeg kan simpelthen ikke finde ud af gøre det samme i MS SQL Server. Jeg forsøger mig med ADO og kan godt lave en connection, og bygge en sqlcommand op med en insert into ..... . Men hvilken execute kommando skal jeg bruge til at kunne læse den auto oprettede primære nøgle ?

-------------------------
/Flemming Christensen



7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Nååh.... ja... det skal også foregå i samme transaktion for at du skal være helt sikker:

Fold kodeboks ind/udKode 


dvs, det skal adskilles med et semikolon, for at eksekvere mere sql i samme transaktion.

(¯`·._.·[Brian Hvarregaard]·._.·´¯)



Bruger du et dataset ?

for så kan du vel bare fange den med :

nytID = DataSet.Tables("tabel").Row(0).Item("ID")

men ellers kan det fanges med select @@identity

læs mere :

http://www.kamath.com/tutorials/tut007_identity.asp


Med venlig hilsen
/Jokke Jensen
www.jj-multimediedesign.dk

[Redigeret d. 21/11-04 23:30:10 af Jokke Jensen]



Bruger du et dataset ?

for så kan du vel bare fange den med :

nytID = DataSet.Tables("tabel").Row(0).Item("ID")

men ellers kan det fanges med select @@identity

læs mere :

http://www.kamath.com/tutorials/tut007_identity.asp


Med venlig hilsen
/Jokke Jensen
www.jj-multimediedesign.dk

[Redigeret d. 21/11-04 23:30:10 af Jokke Jensen]


Tak, jeg har nu brugt @@identity med success !


-------------------------
/Flemming Christensen





Bruger du et dataset ?

for så kan du vel bare fange den med :

nytID = DataSet.Tables("tabel").Row(0).Item("ID")

men ellers kan det fanges med select @@identity

læs mere :

http://www.kamath.com/tutorials/tut007_identity.asp


Med venlig hilsen
/Jokke Jensen
www.jj-multimediedesign.dk

[Redigeret d. 21/11-04 23:30:10 af Jokke Jensen]


hmm prøver igen, for at se om jeg kan give dig point.
-------------------------
/Flemming Christensen



/Jokke Jensen
www.jj-multimediedesign.dk

[Redigeret d. 21/11-04 23:30:10 af Jokke Jensen]


Brugte du kommentar så jeg ikke kan give dig point ?
-------------------------
/Flemming Christensen



Du skal ikke bruge @@identity!! den giver dig et globalt identity, det vil sige at hvis der er en anden der indsætter et brøkdel af et sekund senere end dig i en anden tabel, så er det den identity du får fat i, det vil sige den seneste identity der er brugt på din database. Hvis du bruger scope_identity() så får du den for den transaktion du netop har gennemført. eksempel
Fold kodeboks ind/udKode 


(¯`·._.·[Brian Hvarregaard]·._.·´¯)



Se det er derfor jeg bruger kommentar... hvis jeg ikke er 100% sikker i min sag :)

Jeg bruger blot google til at finde svarene... den giver svar på 50% af alle tråde herinde..


Med venlig hilsen
/Jokke Jensen
www.jj-multimediedesign.dk

[Redigeret d. 22/11-04 12:33:30 af Jokke Jensen]



t