2012-11-16 45 views
3

我确实有问题。我试图通过OUTPUT参数从存储过程返回。存储过程OUTPUT param总是返回NULL

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 

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

declare @xml XML 
exec dbo.UDP_GET_OUT @xml 
select @xml 

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

回答

7

必须在参数传递为OUTPUT:

declare @xml XML; 
exec dbo.UDP_GET_OUT @xml OUTPUT; 
select @xml;