从另一个存储过程调用SQLCLR过程并获得2个返回值?

时间:2012-06-02 05:52:45

标签: sql-server sql-server-2008 stored-procedures sqlclr

我正在使用一个调用另一个SQLCLR存储过程的存储过程。 SQLCLR过程返回2个值。

如何从SQLCLR过程获取2个返回值到T-SQL存储过程?

我通常知道C#使用输出参数获取返回值。但是混淆了如何在正常的存储过程中获取并保持返回值。

2 个答案:

答案 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个值。