sql-server - 当存储过程正在运行时,如何使用PRINT语句跟踪执行?

标签 sql-server tsql

引用:SQL Server

我有一个带有while循环的存储过程,我希望每500个循环后打印一些消息。

所以,我写了-

CREATE spxxx
AS
BEGIN
    BEGIN TRAN
        DECLARE @counter = 0;

        WHILE <somecondition>
            SET @counter = @counter + 1;

            IF @counter % 50 = 0
            BEGIN
                PRINT @counter;
            END
        END
     COMMIT TRAN
END -- End spxxx

但是,一旦proc结束,它就会打印所有消息。我希望它在运行时打印消息。

最佳答案

我确定您可以使用RAISERROR ... WITH NOWAIT

如果使用严重性10,这不是错误。这也提供了一些方便的格式,例如%s,%i,您也可以使用state来跟踪自己的位置。

关于sql-server - 当存储过程正在运行时,如何使用PRINT语句跟踪执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1264586/

相关文章:

sql - 根据另一列的最大值获取值

sql-server - 根据该行中的值填充行

sql - 如何在 MSSQL 查询中修剪前导和尾随制表符空格

sql-server - SSIS 中的 ADO.Net 和 OLE 应该如何选择?

python - 如何在 SQLAlchemy 中为 MSSQL 设置架构?

sql - 使用 FOR JSON PATH 时解析 NVARCHAR 列中的 JSON 文本

sql-server - 在存储的 proc 参数中处理超过 8000 个字符

sql - 我可以将存储过程的结果放入 SQL 中另一个存储过程的游标中吗

c# - 以编程方式将列添加到 SQL Server 数据库

sql - 在动态 SQL 中使用 USE DATABASE_NAME 时不会更改数据库