sql-server - 如何在 SQL 中刷新 PRINT 缓冲区?

标签 sql-server tsql printing

我在 SQL Server 2005 中有一个运行时间非常长的存储过程,我正在尝试对其进行调试,并且我正在使用“print”命令来执行此操作。问题是,我只是在存储过程的最后从 SQL Server 获取消息 - 我希望能够刷新消息缓冲区并在存储过程的运行时立即看到这些消息,而不是在存储过程的最末尾。结束。

最佳答案

使用RAISERROR功能:

RAISERROR( 'This message will show up right away...',0,1) WITH NOWAIT

您不应该用 raiserror 完全替换所有打印。如果某个地方有循环或大光标,只需每次迭代执行一次或两次,甚至每隔几次迭代执行一次。

另外:我第一次了解 RAISERROR 是在这个链接,我现在认为它是 SQL Server 错误处理的权威来源,绝对值得一读:
http://www.sommarskog.se/error-handling-I.html

关于sql-server - 如何在 SQL 中刷新 PRINT 缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/306945/

相关文章:

sql-server - 在 SQL Server 中,如何像在 Postgres 中那样将自动增量字段的下一个值设置为任意值?

c# - 如何使用 Dapper 获取用户定义的 SQLException 编号

SQL ROW_NUMBER() 性能问题

sql-server - SQL Server 2008 : Fill multiple T-SQL variables from one SELECT query?

java - 从 Java 打印到喷墨的速度非常慢

Java,需要帮助从数组中打印字符串

c# - 如何将 SQL Server 表拉入内存以便对其运行查询

sql - 在 WHERE 中选择语法

sql - 哪种 SQL 查询速度更快?按连接条件或Where 子句过滤?

.net - 在 VB.NET 中打印到打印机的首选方法是什么?