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
这会将两个缓冲区的所有输出捕获到文本文件。
我有一个正在 运行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
这会将两个缓冲区的所有输出捕获到文本文件。