存储过程OUTPUT参数始终返回NULL

Mik*_*agy 3 sql sql-server sql-server-2008

我确实有问题.我试图通过OUTPUT参数从存储过程返回.

alter procedure dbo.UDP_GET_OUT
@P_PARAM XML OUTPUT
WITH EXECUTE AS CALLER
as
BEGIN
SET @P_PARAM =
(
select 
name,system_type_id
from sys.types
FOR XML PATH('Type'),ROOT('ROOT'),ELEMENTS
)
/*SELECT @P_PARAM*/
END
Run Code Online (Sandbox Code Playgroud)

然后我调用该过程并分配输出参数.

declare @xml XML
exec dbo.UDP_GET_OUT @xml
select @xml
Run Code Online (Sandbox Code Playgroud)

现在是棘手的部分 - 结果始终为NULL.有人能指出我做错了什么吗?谢谢

Rem*_*anu 7

必须将参数作为OUTPUT传入:

declare @xml XML;
exec dbo.UDP_GET_OUT @xml OUTPUT;
select @xml;
Run Code Online (Sandbox Code Playgroud)