2011-12-22 8 views
7

これはちょっとした質問ですが、私のような痛みです。多くの場合、複数のクエリを含むストアプロシージャを記述します。デバッグを容易にするために、私はそうのようにそれを書く:t-sqlのprint文の後に新しい行を追加する方法はありますか?

print 'Some notes about query 1' 
select * from someTable 

print 'some notes about query 2' 
update sometable set column = null 

は、その後、私はこのような結果を得る:

Some notes about query 1 

(8 row(s) affected) 
Some notes about query 2 

(8 row(s) affected) 

彼らの方法、それにスペース自体は読みすることが困難になります。結果は次のようになります:

Some notes about query 1 
(8 row(s) affected) 

Some notes about query 2 
(8 row(s) affected) 

私はその些細なことは知っていますが、それは私を悩ませます。誰でも考えがありますか?

答えて

11

--Set up test data 
DECLARE @someTable AS TABLE(id int identity, somevalue int) 

INSERT INTO @someTable (somevalue) VALUES (1) 
INSERT INTO @someTable (somevalue) VALUES (2) 
INSERT INTO @someTable (somevalue) VALUES (3) 
INSERT INTO @someTable (somevalue) VALUES (4) 
INSERT INTO @someTable (somevalue) VALUES (5) 
INSERT INTO @someTable (somevalue) VALUES (6) 
INSERT INTO @someTable (somevalue) VALUES (7) 
INSERT INTO @someTable (somevalue) VALUES (8) 

--Here's the method. 
SET NOCOUNT ON --As kd7 said this will get rid of spaces. Along with the rowcount. 

print 'Some notes about query 1' 
select * from @someTable 
print '(' + CONVERT(varchar,@@rowcount) +' row(s) affected)'--This adds the row count back in 

print '' --Formatting row to add the space you require. 

print 'Some notes about query 2' 
update @sometable set somevalue = null 
print '(' + CONVERT(varchar,@@rowcount) +' row(s) affected)' 
+0

私はそれを愛します。書式設定を改善し、コード内に迷惑メール/デバッグ行を少なくするために、マイナーな調整を行いました。前後に2つのprint文を書くのではなく、影響を受けるメモと行を含むクエリの後にprint文を1つだけ用意します。 ありがとう! – TizzyFoe

4

NOCOUNTをONに設定するとスペースが削除されますが、影響を受ける行が8行も削除されますが、それが実行可能かどうかはわかりません。

1

あなたは出力にrowcountsが必要な場合 - その後、SSMSに何のいずれかの決定はありません、そうでない場合はset nocount on

しかし

を使用しますが、常に独自の出力を含めてこれらのクエリを実行するための独自のアプリケーションを作成することあなたが得る答えを一緒に置くrowcounts

関連する問題