Tsql 是否将严重性较低的错误作为日志记录方法?

Tsql 是否将严重性较低的错误作为日志记录方法?,tsql,Tsql,我看到了一些新东西,存储过程通过引发低严重性错误来打印调试消息: raiserror (@Message, 10 , 1) with nowait 如果使用以下批处理命令启动存储过程: SQLCMD.EXE -E -S%SqlServer% -d %DatabaseName% -b -Q "dbo.usp_Myproc" >> "%LogFile%" 我假定这些“错误消息”已记录到文件%LogFile% 是这样吗?我想T-SQL打印语句也会这样做吗 这是一种合理的方法/什么是更

我看到了一些新东西,存储过程通过引发低严重性错误来打印调试消息:

raiserror (@Message, 10 , 1) with  nowait
如果使用以下批处理命令启动存储过程:

SQLCMD.EXE -E -S%SqlServer% -d %DatabaseName% -b -Q "dbo.usp_Myproc" >> "%LogFile%"
我假定这些“错误消息”已记录到文件%LogFile%

是这样吗?我想T-SQL打印语句也会这样做吗


这是一种合理的方法/什么是更好的日志记录方式?

低严重性错误消息会写入日志文件,但打印消息也会写入日志文件。因此,我质疑为什么有人会选择提出一个低严重性的错误消息来编写不是真正错误的信息性消息。我的怀疑是,他们不知道PRINT命令,也不想使用它,或者只要它达到了他们的目的就不在乎。

低严重性错误消息会写入日志文件,但打印消息也会写入日志文件。因此,我质疑为什么有人会选择提出一个低严重性的错误消息来编写不是真正错误的信息性消息。我的怀疑是,他们不知道PRINT命令,也不想使用它,或者只要它达到了他们的目的就不在乎。

与nowait一起使用的优点是,可以直接发送输出,而不是等待缓冲区填满,这对于跟踪长时间运行的进度非常有用。这将作为信息性消息而不是错误消息发送,因此假定将被视为与打印相同。您不能测试一下吗?将
与nowait一起使用的优点是,输出可以直接发送,而不是等待缓冲区填满,这对于跟踪长时间运行的进度非常有用。这将作为信息性消息而不是错误消息发送,因此假定将被视为与打印相同。你不能测试这个吗?在ManagementStudio中尝试raiserror和print。打印可能会在看到输出之前延迟,而raiserror会立即出现。请在management studio中尝试raiserror和打印。在看到输出之前,打印可能会延迟,而raiserror会立即出现。