Sql server 2005 如何将SELECT语句转储到;信息“;存储过程中的SQL Server mgmt studio中的窗格?
我可以在存储过程中使用PRINT语句来调试代码。我在SQLServerManagementStudio的Messages选项卡中看到了输出。如何将一个或多个完整的SELECT语句输出转储到该消息选项卡Sql server 2005 如何将SELECT语句转储到;信息“;存储过程中的SQL Server mgmt studio中的窗格?,sql-server-2005,tsql,stored-procedures,ssms,Sql Server 2005,Tsql,Stored Procedures,Ssms,我可以在存储过程中使用PRINT语句来调试代码。我在SQLServerManagementStudio的Messages选项卡中看到了输出。如何将一个或多个完整的SELECT语句输出转储到该消息选项卡 我的存储过程返回多个输出变量,因此这里不允许返回单个数据集。我正在努力寻找一种调试复杂过程的好方法。它必须在消息窗格中吗?我总是觉得运行select查询很方便,它将结果输出到结果窗格中,实际输出在另一个结果集中。有时我会包括一个“标识符”列,帮助识别结果。例如: select 'checkpoin
我的存储过程返回多个输出变量,因此这里不允许返回单个数据集。我正在努力寻找一种调试复杂过程的好方法。它必须在消息窗格中吗?我总是觉得运行select查询很方便,它将结果输出到结果窗格中,实际输出在另一个结果集中。有时我会包括一个“标识符”列,帮助识别结果。例如:
select 'checkpoint1',a,b,c from table1
....
select 'table @a', * from @a
....
<actual query here>
从表1中选择“检查点1”、a、b、c
....
选择“表@a”,从@a中选择*
....
当存储的过程准备就绪时,只需删除这些脚手架语句即可设置“结果到文本”选项,结果和消息选项卡将合并为一个选项卡,将打印和选择语句组合在一起
要将结果设置为文本,请执行以下任一操作:
- 控制-T
- 查询菜单\Results To \Results To Text
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
然后,当您从查询窗口调用此过程时,只需将@Debug参数的值1传递给该过程即可。您可以从有问题的存储过程中填充临时表或表变量,然后在调用存储过程后从这些表中进行选择。确保删除并重新创建sp中的所有临时表
CREATE TABLE ##t1 (x int)
GO
CREATE PROCEDURE Foo AS
BEGIN
TRUNCATE TABLE ##t1
INSERT INTO ##t1 SELECT column FROM table;
END
GO
exec Foo;
select x from ##t1;