2012-10-11 24 views
0

如何在sp_send_dbmail中的@query parameter中傳遞多個查詢?sp_send_dbmail錯誤

例如:

select count(*) from TableA 
IF count(*)/ @@rowcount = 0 
Exec sp_send_dbmail @profile_name = xx, @recipients = '[email protected]',@subject = 'Test', @body= ' No rows'; 
IF count(*)/ @@rowcount > 0 
Exec sp_send_dbmail @profile_name = xx, @recipients = '[email protected]',@subject = 'Test', 
@body= ' xx rows'; 

我沒有收到任何錯誤消息,但第一個SELECT語句後停止。

回答

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 = '[email protected]',@subject = 'Test', @body= 'No rows'; 

IF @c > 0 
Exec sp_send_dbmail @profile_name = xx, @recipients = '[email protected]',@subject = 'Test', 
@body= ' xx rows'; 

雖然我對將這種邏輯放在SQL方面有一些保留。但因爲我不知道你是如何使用它,它現在應該工作。

+0

- 非常感謝。有用。 – David