با سلام
سوال تیتر واضح است:لبخند:
فرض کنید sp1 یک select * است
Printable View
با سلام
سوال تیتر واضح است:لبخند:
فرض کنید sp1 یک select * است
-- First Stored Procedure
CREATE PROCEDURE SquareSP
@MyFirstParam INT
AS
DECLARE @MyFirstParamSquare INT
SELECT @MyFirstParamSquare = @MyFirstParam*@MyFirstParam
-- Additional Code
RETURN (@MyFirstParamSquare)
GO
Now let us create second Stored Procedure which gives us area of the circle.
-- Second Stored Procedure
CREATE PROCEDURE FindArea
@SquaredParam INT
AS
DECLARE @AreaofCircle FLOAT
SELECT @AreaofCircle = @SquaredParam * PI()
RETURN (@AreaofCircle)
GO
You can clearly see that we need to pass the result of the first stored procedure (SquareSP) to second stored procedure (FindArea). We can do that by using following method:
-- Pass One Stored Procedure's Result as Another Stored Procedure's Parameter
DECLARE @ParamtoPass INT, @CircleArea FLOAT
-- First SP
EXEC @ParamtoPass = SquareSP 5
-- Second SP
EXEC @CircleArea = FindArea @ParamtoPass
SELECT @CircleArea FinalArea
GO
You can see that it is extremely simple to pass the result of the first stored procedure to second procedure.
You can clean up the code by running the following code.
-- Clean up
DROP PROCEDURE SquareSP
DROP PROCEDURE FindArea
GO
خروجی جدول نداره sp ؟
RETURN این جوری بلدم.
سلام.
برای کار روی خروجی یک SP دیگه اون رو می تونید در یک جدول مجازی اینسرت کنید.
create procedure PTest
as
select 11 as A, 21 as B
union
select 12, 22
go
declare @ExecTbl table (A int, B int)
insert into @ExecTbl
exec PTest
select *
from @ExecTbl
ولی بازم نوع سوال من چیز دیگری بود:لبخند:
استفاده از خروجی یک SP در SP دیگه بود دیگه!
:قهقهه:
نیمشه جدول موقط تعریف نکنیم؟
:بامزه:
از openrowset هم می شه استفاده کرد اما هم کار داره هم معمولا دسترسی همچین دستوراتی رو همه سرور ها بسته هست و امیدی بهش نیست!
خب چرا function تعریف نمی کنید؟!
دوست من سوال داره می گه SP در یک SP دیگه!!
اگر می گفت تابع راه حل چیز دیگه می شد!!
به عنوان مثال در تابع شما نمی تونی داینامیک کار کنی.