存储过程返回varchar(MAX)

时间:2011-11-01 20:42:30

标签: sql stored-procedures return-value

我需要帮助从存储过程返回'xmlstring'(varchar(MAX))。如果我测试计算'xmlstring'的数量,它可以正常工作,但是如何获得返回的实际字符串?

ALTER PROCEDURE dbo.sp_test AS
DECLARE @Ret int
SELECT @Ret = COUNT(xmlstring) FROM database WHERE (id = 1)
RETURN @Ret


我不想这样做,但这不正确:

ALTER PROCEDURE dbo.sp_test AS
DECLARE @Ret varchar(MAX)
SELECT @Ret = TOP (1) xmlstring FROM database WHERE (id = 1)
RETURN @Ret

3 个答案:

答案 0 :(得分:0)

SELECT TOP (1) xmlstring FROM database WHERE (id = 1)

如果要以当前的方式设置本地标量变量,则需要

ALTER PROCEDURE dbo.sp_test AS
DECLARE @Ret varchar(MAX)
Set @Ret = TOP (1) xmlstring FROM database WHERE (id = 1)
RETURN @Ret

答案 1 :(得分:0)

是这样的:

ALTER PROCEDURE dbo.sp_test AS
DECLARE @Ret varchar(MAX)
SELECT  TOP (1) xmlstring FROM database WHERE (id = 1)

除非是函数,否则您不需要返回

将返回select语句,您可以放置​​多个,这些是调用ResultSet

答案 2 :(得分:0)

就是这样:

ALTER PROCEDURE dbo.sp_test AS
SELECT xmlstring FROM database WHERE (id = 1)

你不需要一个变量,你不需要TOP,除非id不是唯一的(在这种情况下,你可能会考虑除TOP以外的东西,比如MIN(),MAX()或其他一些过滤器标准,因为你无法真实地预测TOP将返回哪个记录)