我需要帮助从存储过程返回'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
答案 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将返回哪个记录)