edisoon
سه شنبه 23 مهر 1387, 19:47 عصر
سلام دوستان،
من از یک Stored procedure استفاده میکنم که یک رکورد جدید رو به جدول من در بانک اطلاعاتی اضافه میکنه. بعد از اینکه این کار انجام گرفت Identity را Return میکنم.
حال سئوال من این است که وقتی با دستور ExecuteNonQuery این sp را صدا میزنم، بعد از اجرای sp چطوری میتونم از مقدار Identity جدید که توسط خودش Return شده استفاده کنم؟
اینم sp من
ALTER PROCEDURE dbo.sp_TblNames_Insert
@PID int,
@FName nvarchar(20),
@LName nvarchar(30),
As
Begin
Insert Into TblNames
([FName],[LName])
Values
(@FName,@LName)
Declare @ReferenceID int
Select @ReferenceID = @@IDENTITY
Return @ReferenceID
End
من میتونم بعد از اینکه رکورد اضافه شد توسط ExecuteScalar آنرا بدست آورم ولی سئوالم این است که آیا با اجرای یک sp که عملیات Insert را انجام میدهد میتوان خروجی Identity را نیز دریافت کرد و استفاده نمود یا خیر. اگر میشود چگونه؟
من این دو کار را با یک Sp و توسط دستور ExecuteScalar انجام میدهم آیا این روش درست است؟
ALTER PROCEDURE dbo.sp_TblNames_Insert
@PID int,
@FName nvarchar(20),
@LName nvarchar(30),
As
Begin
Insert Into TblNames
([FName],[LName])
Values
(@FName,@LName)
Select Max(PID) from tblNames
End
من از یک Stored procedure استفاده میکنم که یک رکورد جدید رو به جدول من در بانک اطلاعاتی اضافه میکنه. بعد از اینکه این کار انجام گرفت Identity را Return میکنم.
حال سئوال من این است که وقتی با دستور ExecuteNonQuery این sp را صدا میزنم، بعد از اجرای sp چطوری میتونم از مقدار Identity جدید که توسط خودش Return شده استفاده کنم؟
اینم sp من
ALTER PROCEDURE dbo.sp_TblNames_Insert
@PID int,
@FName nvarchar(20),
@LName nvarchar(30),
As
Begin
Insert Into TblNames
([FName],[LName])
Values
(@FName,@LName)
Declare @ReferenceID int
Select @ReferenceID = @@IDENTITY
Return @ReferenceID
End
من میتونم بعد از اینکه رکورد اضافه شد توسط ExecuteScalar آنرا بدست آورم ولی سئوالم این است که آیا با اجرای یک sp که عملیات Insert را انجام میدهد میتوان خروجی Identity را نیز دریافت کرد و استفاده نمود یا خیر. اگر میشود چگونه؟
من این دو کار را با یک Sp و توسط دستور ExecuteScalar انجام میدهم آیا این روش درست است؟
ALTER PROCEDURE dbo.sp_TblNames_Insert
@PID int,
@FName nvarchar(20),
@LName nvarchar(30),
As
Begin
Insert Into TblNames
([FName],[LName])
Values
(@FName,@LName)
Select Max(PID) from tblNames
End