|
| @@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
| |
|
|