【问题标题】:Call SQLCLR procedure from another stored procedure and get 2 return values?从另一个存储过程调用 SQLCLR 过程并获得 2 个返回值?
【发布时间】:2012-06-02 05:52:45
【问题描述】:

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

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

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

【问题讨论】:

  • 你的意思是说我需要在数据库存储过程中声明两个输出参数。但我无法声明输出参数。

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


【解决方案1】:

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
}

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 是的,我知道该方法,但我想知道是否可以从执行另一个过程的存储过程中获得 2 个返回值。我得到了答案。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多