3

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

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

我通常从 C# 中知道使用输出参数获取返回值。但令人困惑的是如何在普通存储过程中获取和保存返回值。

4

2 回答 2

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
}

我得到了正确的结果。谢谢你的帖子。

于 2012-06-02T06:34:15.717 回答
1

可能有比这更“正确”的答案,但一种简单的方法是将两个值合二为一,并用逗号、制表符、管道等字符分隔它们。这样你只是返回一个值,您可以在另一端根据分隔符将其拆分回 2 个值。

于 2012-06-02T06:10:39.537 回答