View Full Version : استفاده از خروجی یک Stored Procedure
mehdi58
دوشنبه 11 تیر 1386, 21:04 عصر
با سلام
من میخوام از خروجی یه Stored Procedure توی یه SP دیگه استفاده کنم اما نمیشه دلیلش چی می تونه باشه و برای رفع این مشکل باید چیکار کنم ؟
متشکرم
Create Procedure SP1
AS
DECLARE @x int
SET @X=2
RETURN
Create Procedure SP2
AS
DECLARE @y int
EXECUTE @y=SP1
SELECT * FROM myTable WHERE ID=@y
whitehat
دوشنبه 11 تیر 1386, 21:17 عصر
شما چیزی Return نکردید!(متغیر های Local با خروج از SP از بین می روند)
supporter
دوشنبه 11 تیر 1386, 22:14 عصر
می تونید از Return Value یا Output parameter استفاده کنید:
Create Procedure SP1(@ID INT OUTPUT)
AS
DECLARE @X int
SET @ID = 3
SET @X=2
RETURN(@X)
Create Procedure SP2
AS
DECLARE @y int, @z int
EXECUTE @y = SP1 @z OUTPUT
SELECT * FROM myTable WHERE ID = @y OR ID =@z
mahboob
سه شنبه 12 تیر 1386, 13:28 عصر
با سلام
من میخوام از خروجی یه Stored Procedure توی یه SP دیگه استفاده کنم اما نمیشه دلیلش چی می تونه باشه و برای رفع این مشکل باید چیکار کنم ؟
متشکرم
Create Procedure SP1
AS
DECLARE @x int
SET @X=2
RETURN
Create Procedure SP2
AS
DECLARE @y int
EXECUTE @y=SP1
SELECT * FROM myTable WHERE ID=@y
شما فقط کافیست که @X رو قبل از as تعریف کنید یعنی از متغیر خارجی استفاده کنید
Create Procedure SP1
x int @
AS
SET @X=2
RETURN
mehdi58
شنبه 16 تیر 1386, 20:57 عصر
با تشکر
مشکلم حل شد اما یه سوال دیگه
اگه بخوام حاصل کوئری زیر رو به یه SP انتقال بدم چیار باید یکنم ؟ چون RETURN F1,F2 رو اجازه نمی ده و اینکه آیا باید این دو فیلد رو از طریق دو تا کوئری مجزا توی یه متغیر ذخیره کنم و اونها رو به SP دیگه پاس بدم ؟
SELET F1,F2 FROM myTable WHERE ID=10
whitehat
شنبه 16 تیر 1386, 21:51 عصر
اگر مقادیر شما فقط یک مقدار داشته باشند (مانند جدول نباشد) می توانید از دستورات زیر استفاده کنید
Select @x1=F1,@x2=F2 From Mytable Where ID=10
mehdi58
یک شنبه 17 تیر 1386, 10:19 صبح
منظورم Return دو مقدار بود که ایراد می گیره
whitehat
یک شنبه 17 تیر 1386, 13:17 عصر
شما فقط می توانید یک مقدار آن هم فقط با نوع int بوسیله return برگردانید
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.