如何从存储过程将SELECT语句转储到SQL Server mgmt studio中的"消息"窗格?

srm*_*ark 5 t-sql ssms stored-procedures sql-server-2005

我可以在存储过程中使用PRINT语句来调试我的代码.我在SQL Server Management Studio的"消息"选项卡中看到了输出.如何将一个或多个整个SELECT语句输出转储到该消息选项卡?

我的存储过程返回多个输出变量,因此返回单个数据集不是一个选项.我正在努力寻找一种调试复杂程序的好方法.

bof*_*ynn 11

设置"结果到文本"选项,结果和消息选项卡将合并到一个选项卡,组合您的PRINT和SELECT语句.

要将结果设置为文本,可以:

  • 控制-T
  • 查询菜单\结果到\结果到文本


G M*_*ros 3

将查询的全部内容打印到消息窗口可能会带来更多麻烦,而不是值得的。相反,我建议从查询窗口调试该过程。您可以做的就是向过程中添加一个可选参数,默认值为 NULL。您的应用程序不会通过它,因此您可以利用它来发挥您的优势。前任:

Alter Procedure Foo(@Col1 int, @col2 varchar(20), @Debug Bit = NULL)
As
SET NOCOUNT ON

If @Debug = 1
  Begin
    Select * From SomeTable Where Col1 = @Col1
  End

-- The rest of your code here
Run Code Online (Sandbox Code Playgroud)

然后,当您从查询窗口调用此过程时,只需将值 1 传递给该 @Debug 参数的过程