/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
@@Identity i stored procedure
Fra : Peter F. Poulsen


Dato : 07-09-05 15:08

Hej,

Jeg sidder og roder lidt med en stored procedure i MS SQL.

Jeg vil gerne gemme en @Identity værdi en variabel som skal bruges
"længere nede" i min procedure.

CREATE PROCEDURE min_sp
@Rid int OUTPUT
AS
BEGIN
SET @Rid = SELECT @@IDENTITY FROM myTable
END

Jeg får fejlen:
Incorrect syntax near the keyword 'SELECT'

Det er første gang jeg prøver at bruge @@Identity, så det kan godt være
der er noget jeg har misforstået fuldstændig, men syntes bare de google
eksempler jeg har fundet har samme syntax?

Én der kan hjælpe?

På forhånd tak.

--
Med venlig hilsen
Peter F. Poulsen

 
 
Peter Lykkegaard (07-09-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 07-09-05 16:12

Peter F. Poulsen wrote:

> Jeg vil gerne gemme en @Identity værdi en variabel som skal bruges
> "længere nede" i min procedure.
>
Hvad forventer du at din variabel @RID skal indeholde?

> SET @Rid = SELECT @@IDENTITY FROM myTable

Din select statement vil give alle rækker fundet i myTable

> Jeg får fejlen:
> Incorrect syntax near the keyword 'SELECT'
>
Ja du bruger @@identity forkert

Fra BOL:
"After an INSERT, SELECT INTO, or bulk copy statement completes,
@@IDENTITY contains the last identity value generated by the
statement."

Dvs nå du har indsat en _ny_ række i din tabel vil @@identity
indeholde værdien af det felt hvor har du har sat identity til at
være sand

> Det er første gang jeg prøver at bruge @@Identity, så det kan godt være
> der er noget jeg har misforstået fuldstændig, men syntes bare de google
> eksempler jeg har fundet har samme syntax?
>
På @@identity eller på select statements?

- Peter


Peter F. Poulsen (09-09-2005)
Kommentar
Fra : Peter F. Poulsen


Dato : 09-09-05 06:56

Peter Lykkegaard wrote:
> Ja du bruger @@identity forkert
>
> Fra BOL:
> "After an INSERT, SELECT INTO, or bulk copy statement completes,
> @@IDENTITY contains the last identity value generated by the
> statement."
>
> Dvs nå du har indsat en _ny_ række i din tabel vil @@identity
> indeholde værdien af det felt hvor har du har sat identity til at
> være sand
>

Hej Peter,

Tak for dit svar.

Jeg havde helt misforstået det. Jeg troede jeg kunne anvende @@IDENTITY
til at finde sidste indsatte række på et vilkårligt tidspunkt. Var ikke
klar over at det skulle ske lige umiddelbart efter INSERT.

Mvh Peter

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste