SQL Server Management Studio - 结果到文本仍然输出到 Window

SQL Server Management Studio - Results to Text still outputs to Window

我有一个正在 运行ning 的存储过程。它生成打印语句作为沿途发生的事情的日志。到它结束时,将有大约 14-15 百万份声明。

我选择将结果发送到文本文件,但消息仍在发送到消息 window。这让我很担心,因为我担心 SSMS 会 运行 内存不足。有没有办法禁止将消息发送到消息 window 但仍将它们发送到文件?

我知道我可以将这些消息记录到 table。我正在寻找修改 SSMS 行为而不是更改存储过程的解决方案。

如果不采取不同的措施,就无法解决这个问题。

SQL 语句的输出与来自 PRINT 的信息语句写入不同的缓冲区。当您 select "results to file" 时,PRINT 输出(以及发送到此缓冲区的其他消息)不会重定向到文件,而是定向到 SSMS 中的 "messages" 窗格。 (当你使用 "results to grid" 时会发生同样的事情。)

让您的日志语句转到文件而不是 SSMS 消息窗格的一种方法是将您的 PRINT 语句转换为 SELECT 语句 - 然后它们将被定向到查询结果缓冲区并输出到文件。

另一种选择是 运行 使用 SQLCMD 而不是 SSMS 的脚本,并将所有输出定向到一个文件:

SQLCMD -i "your script file name" ~servername/authentication parameters~ > C:\logfile.txt

这会将两个缓冲区的所有输出捕获到文本文件。