是否可以在變量中分配從exec存儲過程返回的值?set @var = exec stored_procedure
喜歡的東西
DECLARE @count int
SET @count = Execute dbo.usp_GetCount @Id=123
是否可以在變量中分配從exec存儲過程返回的值?set @var = exec stored_procedure
喜歡的東西
DECLARE @count int
SET @count = Execute dbo.usp_GetCount @Id=123
您可以使用sp_executesql
代替exec
分配給標量輸出參數
DECLARE @out int
EXEC sp_executesql N'select @out_param=10',
N'@out_param int OUTPUT',
@[email protected] OUTPUT
SELECT @out
對於exec
我只知道如何使用可變
declare @out table
(
out int
)
insert into @out
exec('select 10')
select *
from @out
對於存儲的pro也可以使用output
參數或返回碼。後者可以只返回一個整數,通常優先返回錯誤代碼而不是數據。下面將演示這兩種技術。
create proC#foo
@out int output
as
set @out = 100
return 99
go
declare @out int, @return int
exec @return = #foo @out output
select @return as [@return], @out as [@out]
drop proC#foo
謝謝。我想在我的SP中做這樣的事情;使用XMLNAMESPACES(DEFAULT'http://abc.com')SET @out =(SELECT XmlResult.value('count(// subjects/subject)','int') FROM @XmlTable)但是我得到語法錯誤。這讓我瘋狂 – BumbleBee 2011-03-25 23:40:15
使用'SELECT @out = XmlResult.value'將它分配給一個標量變量。 – 2011-03-25 23:44:34
謝謝。我看到消息(1行受影響),但沒有SELECt @out = xmlResult.Value的結果...我怎樣才能看到結果? – BumbleBee 2011-03-25 23:53:43
如果您在proc使用RETURN
DECLARE @count int
EXECUTE @count = dbo.usp_GetCount @Id=123
OUTPUT參數
DECLARE @count int
EXECUTE dbo.usp_GetCount @Id=123, @count OUTPUT
重定向結果以將臨時表/表變量
DECLARE @count int
DECLARE @cache TABLE (CountCol int NOT NULL)
INSERT @cache EXECUTE dbo.usp_GetCount @Id=123
SELECT @count = CountCol FROM @cache
你不能從存儲的proc分配一個記錄集直接一個標量變量
像往常一樣,很多方法可以做到這一點,但最簡單的就是:
DECLARE @count int
Execute @count = dbo.usp_GetCount @Id=123
是的,這是可行的,但如果你不想輸入計數值並使用它。這不起作用。 – Abe 2016-02-29 10:30:26
Yopur問題詢問'EXEC @ sql'但例如你給調用存儲的過程。你需要什麼? – 2011-03-25 23:06:40