0

@query parameterで複数のクエリを渡すにはどうすればよいsp_send_dbmailですか?

例えば:

select count(*) from TableA
IF count(*)/ @@rowcount = 0  
Exec sp_send_dbmail @profile_name = xx, @recipients = 'xx@abc.com',@subject = 'Test', @body= ' No rows';
IF count(*)/ @@rowcount > 0
Exec sp_send_dbmail @profile_name = xx, @recipients = 'xx@abc.com',@subject = 'Test', 
@body= ' xx rows';

エラーメッセージは表示されませんが、最初のselectステートメントの後で停止します。

4

1 に答える 1

1

実行select count(*) from TableAすると、値をどこかに保持せず、実行してクエリの結果を返すだけです。ifこれが、ステートメントが起動しない理由です。次のようなことができます。

DECLARE @c AS int
SET @c = (select count(*) from TableA)

IF @c = 0
Exec sp_send_dbmail @profile_name = xx, @recipients = 'xx@abc.com',@subject = 'Test', @body= 'No rows';

IF @c > 0
Exec sp_send_dbmail @profile_name = xx, @recipients = 'xx@abc.com',@subject = 'Test', 
@body= ' xx rows';

この種のロジックを SQL 側に配置することについては、いくつかの留保がありますが。しかし、私はあなたがこれをどのように使用しているのかわからないので、今のところうまくいくはずです.

于 2012-10-11T15:16:17.437 に答える