我需要帮助从存储过程返回'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
是这样的:
ALTER PROCEDURE dbo.sp_test AS
DECLARE @Ret varchar(MAX)
SELECT TOP (1) xmlstring FROM database WHERE (id = 1)
不需要返回,除非是函数
选择语句将返回,并且您可以放置多个语句,这些语句称为ResultSet
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
就这样:
ALTER PROCEDURE dbo.sp_test AS
SELECT xmlstring FROM database WHERE (id = 1)
您不需要变量,也不需要TOP,除非id不是唯一的(在这种情况下,您可以考虑除TOP之外的其他内容,例如MIN()、MAX()或其他一些过滤条件,因为您无法真正预测TOP将返回哪条记录)