• 20-04-2014, 15:06:52
    #1
    Prosedürüm aşagıda ilk önce bir tabloya insert yapıyorum daha sonra bu eklenen id yi alıp baska bir tabloya insert etmem gerekiyor ancak
    IDENT_CURRENT('Sp_Uyeler') komutu bana prosedürün ekledigi kayıdın idsini degilde bir önceki kayıdın idsini veriyor benden gelen id yi +1 yapıyım dedım oda olması bu sıkıntıyı nasıl aşarım ?

    ALTER PROCEDURE [dbo].[UyeEkle]
    	-- Add the parameters for the stored procedure here
    	@adisoyadi nvarchar(50),
    	@telefon nvarchar(50),
    	@adres nvarchar(50),
    	@baslangic date,
    	@bitis date,
    	@antremantip nvarchar(50),
    	@cins bit,
    	@ucret decimal(18,2),
    	@resim nvarchar(50)
    	
    	
    AS
    BEGIN
    	insert into Sp_Uyeler(U_AdiSoyadi,U_Telefon,U_Adres,U_Baslangic_Tarihi,U_Bitis_Tarihi,U_AntremanPro,U_Cinsiyet,U_Ucret,U_Resim) 
    	values(@adisoyadi,@telefon,@adres,@baslangic,@bitis,@antremantip,@cins,@ucret,@resim)
    	
    	Declare @new_identity int;
    	Declare @a int=1;
    	Declare @soneklenen int;
    
    SELECT @new_identity =IDENT_CURRENT('Sp_Uyeler')
    	set @soneklenen=@new_identity+@a
    	print @soneklenen
    END
  • 21-04-2014, 00:48:38
    #2
    stored procedure parametrelereine bi tane out parametre tanımla,
    Scope_identity ile son eklenen id'yi alıp geri döndürebilirsin

    @soneklenen INT    OUTPUT
    
    SELECT @soneklenen = SCOPE_IDENTITY()
    
        SELECT @soneklenen AS sonid
    
        RETURN