我正在运行一个批处理文件,该文件启动一个 SQLCMD 脚本,该脚本从 TFS Release Manager 创建一个代理作业。
该脚本将 SQLCMD 参数分配给变量,使用选择列出变量,并在整个脚本的运行过程中显示一些反馈。
它看起来像这样:
SET NOCOUNT ON
DECLARE
@Var1 NVARCHAR(100) = '$(Var1)'
,@Var2 NVARCHAR(100) = '$(Var2)'
SELECT '@Var1' AS VarName,@Var1 AS VarValue
UNION ALL
SELECT '@Var2',@Var2
PRINT 'Do the first thing'
--delete sql agent job
PRINT 'Do the next thing'
--create sql agent job
PRINT 'Do the last thing'
--add steps
每隔一段时间,在输出中,我会在 SELECT 输出的中间看到 PRINT 消息。
有没有办法保证这些消息的顺序?
PRINT
输出可以被缓冲。解决这个问题的一个好方法是使用RAISERROR (@msg, 0, 1) WITH NOWAIT;
instead。例如: