NOWAIT的T-SQL RAISERROR只打印一个字符而不是整个字符串

Mar*_*s87 3 t-sql sql-server-2008-r2

我有几个T-SQL存储过程,我使用严重性参数为0的RAISERROR将进度消息打印到输出窗口.我已经在使用WITH NOWAIT来确保消息立即打印出来.

但是,无论我传递给RAISERROR的是什么字符串,只有第一个字符被打印到屏幕上.

例如:

RAISERROR('Profiles Complete', 0, 1) WITH NOWAIT
Run Code Online (Sandbox Code Playgroud)

仅在屏幕上打印一个"P".

有谁知道这是为什么或我如何解决它?

非常感谢,

马丁.

Ant*_*ull 6

当变量声明为char而没有长度时,长度默认为1.

DECLARE @c char
SET @c = 'Profiles Complete'
PRINT @c
Run Code Online (Sandbox Code Playgroud)

输出:

P
Run Code Online (Sandbox Code Playgroud)