我正在使用一个调用另一个SQLCLR存储过程的存储过程。 SQLCLR过程返回2个值。
如何从SQLCLR过程获取2个返回值到T-SQL存储过程?
我通常知道C#使用输出参数获取返回值。但是混淆了如何在正常的存储过程中获取并保持返回值。
答案 0 :(得分:3)
SQLCLR程序:
public static void SendMailSP(out string Status, out string Message)
{
Status = "hi:";
Message = "Hello";
}
数据库程序
CREATE PROCEDURE [dbo].udpTestOutParameter
{
DECLARE @Status varchar(100);
DECLARE @Message varchar(100);
EXECUTE dbo.SendMailSP @Status = @Status OUTPUT,@Message = @Message OUTPUT;
PRINT @Status
PRINT @Message
RETURN
}
我得到了正确的结果。谢谢你的帖子。
答案 1 :(得分:1)
可能有一个比这更“正确”的答案,但一个简单的方法是将两个值合并为一个并用一些字符(如逗号,制表符,管道等)将它们分开。这样你就是这样只返回一个值,您可以根据分隔符将另一端的值拆分为2个值。