格式化SQL Server PRINT消息?

时间:2013-05-02 15:15:53

标签: sql sql-server tsql

我有以下Print语句打印一些细节,但它没有正确标签,看起来很糟糕。有什么方法我可以用标签格式打印它们,这样它们都会在行尾的同一个地方相遇。

Print'ByLineID: '+ Convert (varchar,@bylineID,1 )+' , '+ Convert(varchar,@Count,1)+ ' matching records found, '+ Convert(varchar,@@rowcount,1)+' updated.'  

最终结果:

ByLineID: 119952    , 168 matching records found, 0 updated.
ByLineID: 93979 , 56 matching records found, 0 updated.
ByLineID: 266021    , 45 matching records found, 0 updated.
ByLineID: 105976    , 44 matching records found, 0 updated.
ByLineID: 97525 , 40 matching records found, 0 updated.
ByLineID: 94138 , 39 matching records found, 0 updated.
ByLineID: 88967 , 37 matching records found, 0 updated.

2 个答案:

答案 0 :(得分:4)

Print
      'ByLineID: '+ 
      Convert (varchar,@bylineID,1 ) + char(9) + ' , ' +
      Convert(varchar,@Count,1)  + char(9) +
      ' matching records found, ' +
      Convert(varchar,@@rowcount,1) + char(9) +' updated.'

添加一些标签字符?

答案 1 :(得分:0)

首先,没有长度的CONVERT VARCHAR是个坏主意,你应该试试Convert (varchar(10), @bylineID)

此外,如果这些信息对您很重要,您可以考虑创建一个日志表,或者至少是临时日志表来存储这些信息,并从日志表中选择以获得更好的输出。

CREATE TABLE #logmsg
 ( id INT Identity (1,1)
 , ByLineID VARCHAR(10)
 , RecordMatch INT
 , RecordUpdted INT
 , CreateDate DateTime DEFAULT(GETDATE())) 
相关问题