• 3 odgovora
  • 4.022 pregleda
problem sa @@IDENTITY 20.12.2004. u 13:37 · pre 265 meseci #1
Imam problem sa stored procedurom koja upisuje slog u bazu, ali ne vraca ID pri insertovanju

Kod ide odprilike ovako nekako

create stored procedure spUserAdd

(
@UserName VARCHAR(50),
@UserPassword VARCHAR(50)
)
as

insert into Korisnici(UserName,UserPassword) values (@UserName,@UserPassword)
select @@IDENTITY

go


Potpis
DEJ@N
Re: problem sa @@IDENTITY 20.12.2004. u 14:01 · pre 265 meseci #2
Koliko znam, parametri se ne navode u zagradi.

Jesi li siguran da imaš identity polje u toj tabeli?

Kako posle čitaš ono što ti vrati procedura?

P.S. Ovo treba u MSSQL podforum.

Ili u PgSQL podforum, vidim da i tamo postoji @@IDENTITY
Re: problem sa @@IDENTITY 20.12.2004. u 15:55 · pre 265 meseci #3
Ako je u pitanju MS SQL, vidi ovo:
Code:

create  procedure spUserAdd
(
@UserName VARCHAR(50),
@UserPassword VARCHAR(50)
)
as

insert into tblTest(UserID,Password) values (@UserName,@UserPassword)
---- select @@IDENTITY
RETURN @@IDENTITY  
---- Umesto @@Identity u MS SQL je bolje koristiti SCOPE_Identity() 
go

---- Poziv procedure koji ne vraca nista:
EXECUTE spUserAdd 'Djoka','Djokin Password'

---- Poziv koji preuzima vrednost iz procedure:
DECLARE @Retval AS BigInt
EXECUTE @Retval=spUserAdd 'Djoka','Djokin Password'
SELECT @Retval AS 'Vrednost vracena iz procedure'

Re: problem sa @@IDENTITY 20.12.2004. u 18:22 · pre 265 meseci #4
Mozda je najlakse da koristis proceduru koja ima output parameter, jer je lakse procitati rezultat iz parametra nego iz data seta.

Znaci:

Code:

create stored procedure spUserAdd

(
@UserName VARCHAR(50),
@UserPassword VARCHAR(50),
@UserID INT OUTPUT
)
as

insert into Korisnici(UserName,UserPassword) values (@UserName,@UserPassword)
SET @UserID = @@IDENTITY

go
Potpis
All beer is good. Some beer is better.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme