- 浏览: 15037 次
- 性别:
- 来自: 深圳
-
將電子郵件訊息傳送給指定的收件者。 訊息可能包含查詢結果集、檔案附件,或兩者皆有。 當郵件順利放在 Database Mail 佇列時,sp_send_dbmail 會傳回訊息的 mailitem_id。 這個預存程序在 msdb 資料庫中。
Transact-SQL 語法慣例
語法
sp_send_dbmail [ [ @profile_name = ] 'profile_name' ]
[ , [ @recipients = ] 'recipients [ ; ...n ]' ]
[ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ]
[ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; ...n ]' ]
[ , [ @from_address = ] 'from_address' ]
[ , [ @reply_to = ] 'reply_to' ]
[ , [ @subject = ] 'subject' ]
[ , [ @body = ] 'body' ]
[ , [ @body_format = ] 'body_format' ]
[ , [ @importance = ] 'importance' ]
[ , [ @sensitivity = ] 'sensitivity' ]
[ , [ @file_attachments = ] 'attachment [ ; ...n ]' ]
[ , [ @query = ] 'query' ]
[ , [ @execute_query_database = ] 'execute_query_database' ]
[ , [ @attach_query_result_as_file = ] attach_query_result_as_file ]
[ , [ @query_attachment_filename = ] query_attachment_filename ]
[ , [ @query_result_header = ] query_result_header ]
[ , [ @query_result_width = ] query_result_width ]
[ , [ @query_result_separator = ] 'query_result_separator' ]
[ , [ @exclude_query_output = ] exclude_query_output ]
[ , [ @append_query_error = ] append_query_error ]
[ , [ @query_no_truncate = ] query_no_truncate ]
…………[ , [@query_result_no_padding = ] @query_result_no_padding ]
[ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ]
引數
[ @profile_name= ] 'profile_name'
這是傳送訊息的來源設定檔名稱。 profile_name 的類型是 sysname,預設值是 NULL。 profile_name 必須是現有 Database Mail 設定檔的名稱。 當沒有指定 profile_name 時,sp_send_dbmail 會使用目前使用者的預設私人設定檔。 如果使用者沒有預設私人設定檔,sp_send_dbmail 會使用 msdb 資料庫的預設公用設定檔。 如果使用者沒有預設私人設定檔,而資料庫也沒有預設公用設定檔,就必須指定 @profile_name。
[ @recipients= ] 'recipients'
這是訊息所要送往的電子郵件地址清單,用分號分隔各個電子郵件地址。 收件者清單的類型是 varchar(max)。 雖然這個參數是選擇性的,但至少必須指定 @recipients、@copy_recipients 或 @blind_copy_recipients 其中之一,否則 sp_send_dbmail 會傳回錯誤。
[ @copy_recipients= ] 'copy_recipients'
這是訊息副本所要送往的電子郵件地址清單,用分號分隔各個電子郵件地址。 副本收件者清單的類型是 varchar(max)。 雖然這個參數是選擇性的,但至少必須指定 @recipients、@copy_recipients 或 @blind_copy_recipients 其中之一,否則 sp_send_dbmail 會傳回錯誤。
[ @blind_copy_recipients= ] 'blind_copy_recipients'
這是訊息密件副本所要送往的電子郵件地址清單,用分號分隔各個電子郵件地址。 密件副本收件者清單的類型是 varchar(max)。 雖然這個參數是選擇性的,但至少必須指定 @recipients、@copy_recipients 或 @blind_copy_recipients 其中之一,否則 sp_send_dbmail 會傳回錯誤。
[ @from_address= ] 'from_address'
這是電子郵件的 'from address' 值。 這是選擇性參數,用來覆寫郵件設定檔中的設定。 這個參數的類型是 varchar(MAX)。 SMTP 安全性設定會決定是否要接受這些覆寫。 如果沒有指定參數,預設值為 NULL。
[ @reply_to= ] 'reply_to'
這是電子郵件的 'reply to address' 值。 它只接受一個電子郵件地址做為有效的值。 這是選擇性參數,用來覆寫郵件設定檔中的設定。 這個參數的類型是 varchar(MAX)。 SMTP 安全性設定會決定是否要接受這些覆寫。 如果沒有指定參數,預設值為 NULL。
[ @subject= ] 'subject'
這是電子郵件訊息的主旨。 主旨的類型是 nvarchar(255)。 如果未指定主旨,預設值便是「SQL Server 訊息」。
[ @body= ] 'body'
這是電子郵件訊息的主體。 訊息主體的類型是 nvarchar(max),預設值是 NULL。
[ @body_format= ] 'body_format'
這是訊息主體的格式。 參數的類型是 varchar(20),預設值是 NULL。 當指定這個選項時,會設定外寄訊息的標頭來表示訊息主體有指定的格式。 參數可包含下列各值之一:
TEXT
HTML
預設值是 TEXT。
[ @importance= ] 'importance'
這是訊息的重要性。 參數的類型是 varchar(6)。 參數可包含下列各值之一:
Low
Normal
High
預設值是 Normal。
[ @sensitivity= ] 'sensitivity'
這是訊息的敏感性。 參數的類型是 varchar(12)。 參數可包含下列各值之一:
Normal
Personal
Private
Confidential
預設值是 Normal。
[ @file_attachments= ] 'file_attachments'
這是附加至電子郵件訊息中的檔案名稱清單,用分號分隔各檔案名稱。 清單中的檔案必須指定為絕對路徑。 附件清單的類型是 nvarchar(max)。 根據預設,Database Mail 會將檔案附件限制為每個檔案 1 MB。
[ @query= ] 'query'
這是要執行的查詢。 查詢的結果可以附加成一個檔案,也可以包含在電子郵件訊息的主體中。 查詢的類型是 nvarchar(max),且可以包含任何有效的 Transact-SQL 陳述式。 請注意,查詢是在不同的工作階段中執行,因此,查詢無法使用呼叫 sp_send_dbmail 的指令碼中的本機變數。
[ @execute_query_database= ] 'execute_query_database'
這是預存程序執行查詢所在的資料庫內容。 參數的類型是 sysname,預設值是目前的資料庫。 只有在指定 @query 時,這個參數才適用。
[ @attach_query_result_as_file= ] attach_query_result_as_file
指定是否以附加檔案的方式傳回查詢的結果集。 attach_query_result_as_file 的類型是 bit,預設值是 0。
當值是 0 時,查詢結果會包含在電子郵件訊息的主體中,在 @body 參數的內容之後。 當值是 1 時,會以附加檔案的方式傳回結果。 只有在指定 @query 時,這個參數才適用。
[ @query_attachment_filename= ] query_attachment_filename
指定查詢附加檔案結果集使用的檔案名稱。 query_attachment_filename 的類型是 nvarchar(255),預設值是 NULL。 當 attach_query_result 為 0 時,會忽略此參數。 當 attach_query_result 是 1 且這個參數是 NULL 時,Database Mail 會建立任意檔案名稱。
[ @query_result_header= ] query_result_header
指定查詢結果是否包含資料行標頭。 query_result_header 的類型是 bit。 當值是 1 時,查詢結果會包含資料行標頭。 當值是 0 時,查詢結果不會包含資料行標頭。 這個參數的預設值是 1。 只有在指定 @query 時,這個參數才適用。
[ @query_result_width = ] query_result_width
這是以字元為單位的行寬,用來格式化查詢的結果。 query_result_width 的類型是 int,預設值是 256。 提供的值必須介於 10 和 32767 之間。 只有在指定 @query 時,這個參數才適用。
[ @query_result_separator= ] 'query_result_separator'
這是在查詢輸出中用來分隔資料行的字元。 分隔符號的類型是 char(1)。 預設值是 ' ' (空白)。
[ @exclude_query_output= ] exclude_query_output
指定是否要在電子郵件中傳回查詢執行的輸出。 exclude_query_output 是位元,預設值為 0。 當此參數是 0 時,執行 sp_send_dbmail 預存程序不會在主控台上列印當做查詢執行結果傳回的訊息。 當此參數是 1 時,sp_send_dbmail 預存程序的執行不會在控制台上列印任何查詢執行訊息。
[ @append_query_error= ] append_query_error
指定在 @query 引數中指定的查詢傳回錯誤時,是否傳送電子郵件。 append_query_error 是 bit,預設值是 0。 當這個參數是 1 時,Database Mail 會傳送電子郵件,且會在電子郵件的主體中包含查詢錯誤訊息。 當這個參數是 0 時,Database Mail 不會傳送電子郵件訊息,且 sp_send_dbmail 以傳回碼 1 為結尾,表示失敗。
[ @query_no_truncate= ] query_no_truncate
指定執行查詢時是否使用選項來避免截斷大型變數長度資料類型 (varchar(max)、nvarchar(max)、varbinary(max)、xml、text、ntext、image 和使用者自訂資料類型)。 若有設定,查詢結果不包含資料行標頭。 query_no_truncate 值的類型是 bit。 當此值是 0 或未指定時,查詢中的資料行會截斷為 256 個字元。 當此值是 1 時,不會截斷查詢中的資料行。 這個參數的預設值是 0。
附註
搭配大量資料一起使用時,@query_no_truncate 選項會耗用其他資源並減慢伺服器效能。
[ @query_result_no_padding ] @query_result_no_padding
此類型為 bit。 預設值是 0。 當您設定為 1 時,不會填補查詢結果,因此可能會減少檔案大小。如果您將 @query_result_no_padding 設定為 1,而且設定了 @query_result_width 參數,@query_result_no_padding 參數就會覆寫 @query_result_width 參數。
在此情況下,不會發生任何錯誤。
如果您將 @query_result_no_padding 設定為 1,而且設定了 @query_no_truncate 參數,就會引發錯誤。
[ @mailitem_id= ] mailitem_id [ OUTPUT ]
選擇性輸出參數會傳回訊息的 mailitem_id。 mailitem_id 的類型是 int。
傳回碼值
傳回碼為 0 表示成功。 其他任何值都表示失敗。 失敗陳述式的錯誤碼會儲存在 @@ERRROR 變數中。
結果集
成功時,傳回「郵件已列入佇列」訊息。
備註
使用之前,您必須利用 Database Mail 組態精靈或 sp_configure 來啟用 Database Mail。
sysmail_stop_sp 會停止外部程式使用的 Service Broker 物件來停止 Database Mail。 使用 sysmail_stop_sp 停止 Database Mail 時,sp_send_dbmail 仍接受郵件。 若要啟動 Database Mail,請使用 sysmail_start_sp。
當未指定 @profile 時,sp_send_dbmail 會使用預設的設定檔。 如果傳送電子郵件訊息的使用者有預設私人設定檔,Database Mail 會使用這個設定檔。 如果使用者沒有預設私人設定檔,sp_send_dbmail 會使用預設公用設定檔。 如果使用者沒有預設私人設定檔,也沒有預設公用設定檔,sp_send_dbmail 就會傳回錯誤。
sp_send_dbmail 不支援沒有內容的電子郵件訊息。 若要傳送電子郵件訊息,您至少必須指定 @body、@query、@file_attachments 或 @subject 其中之一。 否則,sp_send_dbmail 會傳回錯誤。
Database Mail 利用目前使用者的 Microsoft Windows 安全性內容來控制檔案的存取。 因此,以 SQL Server 驗證方法驗證的使用者無法使用 @file_attachments 附加檔案。 Windows 不允許 SQL Server 在遠端電腦之間提供認證。 因此,從執行 SQL Server 的電腦以外的電腦執行命令時,Database Mail 可能無法從網路共用附加檔案。
如果同時指定了 @query 和 @file_attachments,但找不到檔案,仍會執行查詢,但不會傳送電子郵件。
當指定查詢時,結果集會格式化為內嵌文字。 結果中的二進位資料會以十六進位格式傳送。
@recipients、@copy_recipients 和 @blind_copy_recipients 等參數是用分號分隔的電子郵件地址清單。 必須至少提供其中一個參數,否則,sp_send_dbmail 會傳回錯誤。
執行沒有交易內容的 sp_send_dbmail 時,Database Mail 會啟動並認可隱含交易。 從現有交易執行 sp_send_dbmail 時,Database Mail 必須依賴使用者來認可或回復任何變更。 它並不會啟動內部交易。
權限
msdb 資料庫中 DatabaseMailUser 資料庫角色的所有成員,都預設了 sp_send_dbmail 的執行權限。 不過,當傳送訊息的使用者沒有使用要求設定檔的權限時,sp_send_dbmail 會傳回錯誤,且不會傳送訊息。
範例
A.傳送電子郵件訊息
這個範例利用電子郵件地址 danw@Adventure-Works.com,將電子郵件訊息傳給 Dan Wilson。 訊息的主旨是 Automated Success Message。 訊息的主體包含 'The stored procedure finished successfully' 這個句子。
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = 'danw@Adventure-Works.com',
@body = 'The stored procedure finished successfully.',
@subject = 'Automated Success Message' ;
B.利用查詢結果傳送電子郵件訊息
這個範例利用電子郵件地址 danw@Adventure-Works.com,將電子郵件訊息傳給 Dan Wilson。 訊息的主旨是 Work Order Count,且會執行查詢來顯示在 2004 年 4 月 30 日之後 DueDate 小於兩天的工作訂單數目。 Database Mail 會將結果附加為一個文字檔。
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = 'danw@Adventure-Works.com',
@query = 'SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
WHERE DueDate > ''2004-04-30''
AND DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
@subject = 'Work Order Count',
@attach_query_result_as_file = 1 ;
C.傳送 HTML 電子郵件訊息
這個範例利用電子郵件地址 danw@Adventure-Works.com,將電子郵件訊息傳給 Dan Wilson。 訊息的主旨是 Work Order List,且包含一份 HTML 文件,其中顯示在 2004 年 4 月 30 日之後 DueDate 小於兩天的工作訂單。 Database Mail 會使用 HTML 格式來傳送訊息。
DECLARE @tableHTML NVARCHAR(MAX) ;
SET @tableHTML =
N'<H1>Work Order Report</H1>' +
N'<table border="1">' +
N'<tr><th>Work Order ID</th><th>Product ID</th>' +
N'<th>Name</th><th>Order Qty</th><th>Due Date</th>' +
N'<th>Expected Revenue</th></tr>' +
CAST ( ( SELECT td = wo.WorkOrderID, '',
td = p.ProductID, '',
td = p.Name, '',
td = wo.OrderQty, '',
td = wo.DueDate, '',
td = (p.ListPrice - p.StandardCost) * wo.OrderQty
FROM AdventureWorks.Production.WorkOrder as wo
JOIN AdventureWorks.Production.Product AS p
ON wo.ProductID = p.ProductID
WHERE DueDate > '2004-04-30'
AND DATEDIFF(dd, '2004-04-30', DueDate) < 2
ORDER BY DueDate ASC,
(p.ListPrice - p.StandardCost) * wo.OrderQty DESC
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX) ) +
N'</table>' ;
EXEC msdb.dbo.sp_send_dbmail @recipients='danw@Adventure-Works.com',
@subject = 'Work Order List',
@body = @tableHTML,
@body_format = 'HTML' ;
转载于:http://msdn.microsoft.com/zh-tw/library/ms190307.aspx
Transact-SQL 語法慣例
語法
sp_send_dbmail [ [ @profile_name = ] 'profile_name' ]
[ , [ @recipients = ] 'recipients [ ; ...n ]' ]
[ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ]
[ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; ...n ]' ]
[ , [ @from_address = ] 'from_address' ]
[ , [ @reply_to = ] 'reply_to' ]
[ , [ @subject = ] 'subject' ]
[ , [ @body = ] 'body' ]
[ , [ @body_format = ] 'body_format' ]
[ , [ @importance = ] 'importance' ]
[ , [ @sensitivity = ] 'sensitivity' ]
[ , [ @file_attachments = ] 'attachment [ ; ...n ]' ]
[ , [ @query = ] 'query' ]
[ , [ @execute_query_database = ] 'execute_query_database' ]
[ , [ @attach_query_result_as_file = ] attach_query_result_as_file ]
[ , [ @query_attachment_filename = ] query_attachment_filename ]
[ , [ @query_result_header = ] query_result_header ]
[ , [ @query_result_width = ] query_result_width ]
[ , [ @query_result_separator = ] 'query_result_separator' ]
[ , [ @exclude_query_output = ] exclude_query_output ]
[ , [ @append_query_error = ] append_query_error ]
[ , [ @query_no_truncate = ] query_no_truncate ]
…………[ , [@query_result_no_padding = ] @query_result_no_padding ]
[ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ]
引數
[ @profile_name= ] 'profile_name'
這是傳送訊息的來源設定檔名稱。 profile_name 的類型是 sysname,預設值是 NULL。 profile_name 必須是現有 Database Mail 設定檔的名稱。 當沒有指定 profile_name 時,sp_send_dbmail 會使用目前使用者的預設私人設定檔。 如果使用者沒有預設私人設定檔,sp_send_dbmail 會使用 msdb 資料庫的預設公用設定檔。 如果使用者沒有預設私人設定檔,而資料庫也沒有預設公用設定檔,就必須指定 @profile_name。
[ @recipients= ] 'recipients'
這是訊息所要送往的電子郵件地址清單,用分號分隔各個電子郵件地址。 收件者清單的類型是 varchar(max)。 雖然這個參數是選擇性的,但至少必須指定 @recipients、@copy_recipients 或 @blind_copy_recipients 其中之一,否則 sp_send_dbmail 會傳回錯誤。
[ @copy_recipients= ] 'copy_recipients'
這是訊息副本所要送往的電子郵件地址清單,用分號分隔各個電子郵件地址。 副本收件者清單的類型是 varchar(max)。 雖然這個參數是選擇性的,但至少必須指定 @recipients、@copy_recipients 或 @blind_copy_recipients 其中之一,否則 sp_send_dbmail 會傳回錯誤。
[ @blind_copy_recipients= ] 'blind_copy_recipients'
這是訊息密件副本所要送往的電子郵件地址清單,用分號分隔各個電子郵件地址。 密件副本收件者清單的類型是 varchar(max)。 雖然這個參數是選擇性的,但至少必須指定 @recipients、@copy_recipients 或 @blind_copy_recipients 其中之一,否則 sp_send_dbmail 會傳回錯誤。
[ @from_address= ] 'from_address'
這是電子郵件的 'from address' 值。 這是選擇性參數,用來覆寫郵件設定檔中的設定。 這個參數的類型是 varchar(MAX)。 SMTP 安全性設定會決定是否要接受這些覆寫。 如果沒有指定參數,預設值為 NULL。
[ @reply_to= ] 'reply_to'
這是電子郵件的 'reply to address' 值。 它只接受一個電子郵件地址做為有效的值。 這是選擇性參數,用來覆寫郵件設定檔中的設定。 這個參數的類型是 varchar(MAX)。 SMTP 安全性設定會決定是否要接受這些覆寫。 如果沒有指定參數,預設值為 NULL。
[ @subject= ] 'subject'
這是電子郵件訊息的主旨。 主旨的類型是 nvarchar(255)。 如果未指定主旨,預設值便是「SQL Server 訊息」。
[ @body= ] 'body'
這是電子郵件訊息的主體。 訊息主體的類型是 nvarchar(max),預設值是 NULL。
[ @body_format= ] 'body_format'
這是訊息主體的格式。 參數的類型是 varchar(20),預設值是 NULL。 當指定這個選項時,會設定外寄訊息的標頭來表示訊息主體有指定的格式。 參數可包含下列各值之一:
TEXT
HTML
預設值是 TEXT。
[ @importance= ] 'importance'
這是訊息的重要性。 參數的類型是 varchar(6)。 參數可包含下列各值之一:
Low
Normal
High
預設值是 Normal。
[ @sensitivity= ] 'sensitivity'
這是訊息的敏感性。 參數的類型是 varchar(12)。 參數可包含下列各值之一:
Normal
Personal
Private
Confidential
預設值是 Normal。
[ @file_attachments= ] 'file_attachments'
這是附加至電子郵件訊息中的檔案名稱清單,用分號分隔各檔案名稱。 清單中的檔案必須指定為絕對路徑。 附件清單的類型是 nvarchar(max)。 根據預設,Database Mail 會將檔案附件限制為每個檔案 1 MB。
[ @query= ] 'query'
這是要執行的查詢。 查詢的結果可以附加成一個檔案,也可以包含在電子郵件訊息的主體中。 查詢的類型是 nvarchar(max),且可以包含任何有效的 Transact-SQL 陳述式。 請注意,查詢是在不同的工作階段中執行,因此,查詢無法使用呼叫 sp_send_dbmail 的指令碼中的本機變數。
[ @execute_query_database= ] 'execute_query_database'
這是預存程序執行查詢所在的資料庫內容。 參數的類型是 sysname,預設值是目前的資料庫。 只有在指定 @query 時,這個參數才適用。
[ @attach_query_result_as_file= ] attach_query_result_as_file
指定是否以附加檔案的方式傳回查詢的結果集。 attach_query_result_as_file 的類型是 bit,預設值是 0。
當值是 0 時,查詢結果會包含在電子郵件訊息的主體中,在 @body 參數的內容之後。 當值是 1 時,會以附加檔案的方式傳回結果。 只有在指定 @query 時,這個參數才適用。
[ @query_attachment_filename= ] query_attachment_filename
指定查詢附加檔案結果集使用的檔案名稱。 query_attachment_filename 的類型是 nvarchar(255),預設值是 NULL。 當 attach_query_result 為 0 時,會忽略此參數。 當 attach_query_result 是 1 且這個參數是 NULL 時,Database Mail 會建立任意檔案名稱。
[ @query_result_header= ] query_result_header
指定查詢結果是否包含資料行標頭。 query_result_header 的類型是 bit。 當值是 1 時,查詢結果會包含資料行標頭。 當值是 0 時,查詢結果不會包含資料行標頭。 這個參數的預設值是 1。 只有在指定 @query 時,這個參數才適用。
[ @query_result_width = ] query_result_width
這是以字元為單位的行寬,用來格式化查詢的結果。 query_result_width 的類型是 int,預設值是 256。 提供的值必須介於 10 和 32767 之間。 只有在指定 @query 時,這個參數才適用。
[ @query_result_separator= ] 'query_result_separator'
這是在查詢輸出中用來分隔資料行的字元。 分隔符號的類型是 char(1)。 預設值是 ' ' (空白)。
[ @exclude_query_output= ] exclude_query_output
指定是否要在電子郵件中傳回查詢執行的輸出。 exclude_query_output 是位元,預設值為 0。 當此參數是 0 時,執行 sp_send_dbmail 預存程序不會在主控台上列印當做查詢執行結果傳回的訊息。 當此參數是 1 時,sp_send_dbmail 預存程序的執行不會在控制台上列印任何查詢執行訊息。
[ @append_query_error= ] append_query_error
指定在 @query 引數中指定的查詢傳回錯誤時,是否傳送電子郵件。 append_query_error 是 bit,預設值是 0。 當這個參數是 1 時,Database Mail 會傳送電子郵件,且會在電子郵件的主體中包含查詢錯誤訊息。 當這個參數是 0 時,Database Mail 不會傳送電子郵件訊息,且 sp_send_dbmail 以傳回碼 1 為結尾,表示失敗。
[ @query_no_truncate= ] query_no_truncate
指定執行查詢時是否使用選項來避免截斷大型變數長度資料類型 (varchar(max)、nvarchar(max)、varbinary(max)、xml、text、ntext、image 和使用者自訂資料類型)。 若有設定,查詢結果不包含資料行標頭。 query_no_truncate 值的類型是 bit。 當此值是 0 或未指定時,查詢中的資料行會截斷為 256 個字元。 當此值是 1 時,不會截斷查詢中的資料行。 這個參數的預設值是 0。
附註
搭配大量資料一起使用時,@query_no_truncate 選項會耗用其他資源並減慢伺服器效能。
[ @query_result_no_padding ] @query_result_no_padding
此類型為 bit。 預設值是 0。 當您設定為 1 時,不會填補查詢結果,因此可能會減少檔案大小。如果您將 @query_result_no_padding 設定為 1,而且設定了 @query_result_width 參數,@query_result_no_padding 參數就會覆寫 @query_result_width 參數。
在此情況下,不會發生任何錯誤。
如果您將 @query_result_no_padding 設定為 1,而且設定了 @query_no_truncate 參數,就會引發錯誤。
[ @mailitem_id= ] mailitem_id [ OUTPUT ]
選擇性輸出參數會傳回訊息的 mailitem_id。 mailitem_id 的類型是 int。
傳回碼值
傳回碼為 0 表示成功。 其他任何值都表示失敗。 失敗陳述式的錯誤碼會儲存在 @@ERRROR 變數中。
結果集
成功時,傳回「郵件已列入佇列」訊息。
備註
使用之前,您必須利用 Database Mail 組態精靈或 sp_configure 來啟用 Database Mail。
sysmail_stop_sp 會停止外部程式使用的 Service Broker 物件來停止 Database Mail。 使用 sysmail_stop_sp 停止 Database Mail 時,sp_send_dbmail 仍接受郵件。 若要啟動 Database Mail,請使用 sysmail_start_sp。
當未指定 @profile 時,sp_send_dbmail 會使用預設的設定檔。 如果傳送電子郵件訊息的使用者有預設私人設定檔,Database Mail 會使用這個設定檔。 如果使用者沒有預設私人設定檔,sp_send_dbmail 會使用預設公用設定檔。 如果使用者沒有預設私人設定檔,也沒有預設公用設定檔,sp_send_dbmail 就會傳回錯誤。
sp_send_dbmail 不支援沒有內容的電子郵件訊息。 若要傳送電子郵件訊息,您至少必須指定 @body、@query、@file_attachments 或 @subject 其中之一。 否則,sp_send_dbmail 會傳回錯誤。
Database Mail 利用目前使用者的 Microsoft Windows 安全性內容來控制檔案的存取。 因此,以 SQL Server 驗證方法驗證的使用者無法使用 @file_attachments 附加檔案。 Windows 不允許 SQL Server 在遠端電腦之間提供認證。 因此,從執行 SQL Server 的電腦以外的電腦執行命令時,Database Mail 可能無法從網路共用附加檔案。
如果同時指定了 @query 和 @file_attachments,但找不到檔案,仍會執行查詢,但不會傳送電子郵件。
當指定查詢時,結果集會格式化為內嵌文字。 結果中的二進位資料會以十六進位格式傳送。
@recipients、@copy_recipients 和 @blind_copy_recipients 等參數是用分號分隔的電子郵件地址清單。 必須至少提供其中一個參數,否則,sp_send_dbmail 會傳回錯誤。
執行沒有交易內容的 sp_send_dbmail 時,Database Mail 會啟動並認可隱含交易。 從現有交易執行 sp_send_dbmail 時,Database Mail 必須依賴使用者來認可或回復任何變更。 它並不會啟動內部交易。
權限
msdb 資料庫中 DatabaseMailUser 資料庫角色的所有成員,都預設了 sp_send_dbmail 的執行權限。 不過,當傳送訊息的使用者沒有使用要求設定檔的權限時,sp_send_dbmail 會傳回錯誤,且不會傳送訊息。
範例
A.傳送電子郵件訊息
這個範例利用電子郵件地址 danw@Adventure-Works.com,將電子郵件訊息傳給 Dan Wilson。 訊息的主旨是 Automated Success Message。 訊息的主體包含 'The stored procedure finished successfully' 這個句子。
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = 'danw@Adventure-Works.com',
@body = 'The stored procedure finished successfully.',
@subject = 'Automated Success Message' ;
B.利用查詢結果傳送電子郵件訊息
這個範例利用電子郵件地址 danw@Adventure-Works.com,將電子郵件訊息傳給 Dan Wilson。 訊息的主旨是 Work Order Count,且會執行查詢來顯示在 2004 年 4 月 30 日之後 DueDate 小於兩天的工作訂單數目。 Database Mail 會將結果附加為一個文字檔。
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = 'danw@Adventure-Works.com',
@query = 'SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
WHERE DueDate > ''2004-04-30''
AND DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
@subject = 'Work Order Count',
@attach_query_result_as_file = 1 ;
C.傳送 HTML 電子郵件訊息
這個範例利用電子郵件地址 danw@Adventure-Works.com,將電子郵件訊息傳給 Dan Wilson。 訊息的主旨是 Work Order List,且包含一份 HTML 文件,其中顯示在 2004 年 4 月 30 日之後 DueDate 小於兩天的工作訂單。 Database Mail 會使用 HTML 格式來傳送訊息。
DECLARE @tableHTML NVARCHAR(MAX) ;
SET @tableHTML =
N'<H1>Work Order Report</H1>' +
N'<table border="1">' +
N'<tr><th>Work Order ID</th><th>Product ID</th>' +
N'<th>Name</th><th>Order Qty</th><th>Due Date</th>' +
N'<th>Expected Revenue</th></tr>' +
CAST ( ( SELECT td = wo.WorkOrderID, '',
td = p.ProductID, '',
td = p.Name, '',
td = wo.OrderQty, '',
td = wo.DueDate, '',
td = (p.ListPrice - p.StandardCost) * wo.OrderQty
FROM AdventureWorks.Production.WorkOrder as wo
JOIN AdventureWorks.Production.Product AS p
ON wo.ProductID = p.ProductID
WHERE DueDate > '2004-04-30'
AND DATEDIFF(dd, '2004-04-30', DueDate) < 2
ORDER BY DueDate ASC,
(p.ListPrice - p.StandardCost) * wo.OrderQty DESC
FOR XML PATH('tr'), TYPE
) AS NVARCHAR(MAX) ) +
N'</table>' ;
EXEC msdb.dbo.sp_send_dbmail @recipients='danw@Adventure-Works.com',
@subject = 'Work Order List',
@body = @tableHTML,
@body_format = 'HTML' ;
转载于:http://msdn.microsoft.com/zh-tw/library/ms190307.aspx
发表评论
-
SQL Server 大表加非空字段
2013-10-24 15:38 1502对于千万级以上的大表加非空的字段有三种方法: 1.直接加非 ... -
SQL Server 作业监控
2013-09-24 11:03 1180在讲解SQLServer Agent Jobs ... -
sql server case嵌套报错
2013-08-22 14:47 1234报错如下: Msg 8180, Level 16, State ... -
sql server笔记
2013-07-18 11:56 8431.类型转换 convert(varchar ... -
Sql Server系统数据库的作用
2013-07-16 16:04 838系统数据库 Sql Server的系统数据库分为:ma ... -
SQL SERVER SET语句
2013-07-16 15:07 0ransact-SQL 编程语言提供了一些 SET 语句,这些 ... -
sql 获取链接服务器磁盘占用信息
2013-05-17 13:26 1151可以将以下代码编写为SP,如果需要,可以加上获取时间(getD ... -
SELECT INTO 和 INSERT INTO SELECT 区别
2012-11-28 15:37 906SELECT INTO 和 INSERT INTO SELEC ... -
标准SQL语句
2012-03-31 17:42 814标准SQL语句总结,标准SQL语言基本上适用于下面所列出的数据 ... -
Oracle 主键自动增长
2012-03-07 10:27 784--建立表: create table sim ...
相关推荐
3. 在"Steps"选项卡中,创建新的Job步骤,编写Transact-SQL脚本调用`sp_send_dbmail`,并传递相应的参数。 4. 在"Schedule"选项卡中,设置Job的执行计划,如每天、每周或在特定事件触发时执行。 5. 最后,保存并激活...
EXEC msdb.dbo.sp_send_dbmail @recipients = 'your_email@example.com', @subject = '作业重复执行警告', @body = '作业 ' + @job_name + ' 可能在过去 ' + CAST(@interval AS NVARCHAR) + ' 小时内重复执行。'...
邮件发送通常使用SQL Server的`sp_send_dbmail`存储过程,但前提是你已经配置了数据库邮件功能并创建了适当的邮件配置。 总结来说,监控MSSQL服务器磁盘空间告警的实现方法包括: 1. 创建一个存储过程,使用`sp_...
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
模型权重文件介绍 1. 基于开源数据集训练,训练集包含15000+图片,训练100 epochs 2. 基于YOLO11x模型进行的训练 3. 模型识别类别有2类:helmet、no-helmet
ARM仿真器快速使用资料+绿色版软件 附视频-20210701.zip
内容概要:本文详细介绍了QY20B型汽车起重机液压系统的设计过程,涵盖其背景、发展史、主要运动机构及其液压回路设计。文章首先概述了汽车起重机的分类和发展历程,强调了液压技术在现代起重机中的重要性。接着,文章深入分析了QY20B型汽车起重机的五大主要运动机构(支腿、回转、伸缩、变幅、起升)的工作原理及相应的液压回路设计。每个回路的设计均考虑了性能要求、功能实现及工作原理,确保系统稳定可靠。此外,文章还详细计算了支腿油缸的受力、液压元件的选择及液压系统的性能验算,确保设计的可行性和安全性。 适合人群:从事工程机械设计、液压系统设计及相关领域的工程师和技术人员,以及对起重机技术感兴趣的高等院校学生和研究人员。 使用场景及目标:①为从事汽车起重机液压系统设计的工程师提供详细的参考案例;②帮助技术人员理解和掌握液压系统设计的关键技术和计算方法;③为高等院校学生提供学习和研究起重机液压系统设计的实用资料。 其他说明:本文不仅提供了详细的液压系统设计过程,还结合了实际工程应用,确保设计的实用性和可靠性。文中引用了大量参考文献,确保设计依据的科学性和权威性。阅读本文有助于读者深入了解汽车起重机液压系统的设计原理和实现方法,为实际工程应用提供有力支持。
Unity Beautify 3 - Advanced Post Processing 23.0版本
基于数据包络分析的中国旅游业发展效率特征
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于蓝牙技术的多通道键盘 ## 项目简介 在多设备工作环境中,用户常常需要在家庭电脑、工作笔记本或平板电脑之间频繁切换键盘输入,这不仅占用了大量桌面空间,而且操作不便。本项目旨在通过蓝牙技术,设计一款能够同时连接多个设备并实现一键切换的多通道键盘,从而简化用户的操作流程,提高工作效率。 ## 项目的主要特性和功能 1. 多设备连接键盘可以同时连接多达三个不同的设备。 2. 一键切换通过按键即可快速切换输入目标设备。 3. 高性能微控制器采用ATMega32u4微控制器,提供足够的GPIO引脚,支持Arduino编程环境,便于固件开发和升级。 4. 蓝牙模块使用RN42蓝牙模块,确保稳定的设备连接和数据传输。 5. 电压调节器使用MIC4680电压调节器,确保系统稳定供电。 ## 安装使用步骤 1. 硬件准备 获取ATMega32u4微控制器、RN42蓝牙模块、MIC4680电压调节器等硬件组件。 2. 电路设计
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
基于Vue.js和SpringBoot的研究生调研管理系统.zip
地理信息文件,许昌市各县区政区图,shp格式,可编辑
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
Scratch放飞气球 2024年9月电子学会scratch三级考试真题源代码 综合考查角色添加、背景添加、初始位置、移动步数、方向旋转、造型切换、左右翻转、碰到边缘反弹、无限循环、条件判断、鼠标控制、碰撞检测等积木的使用;难点在于: 如何实现蝙蝠不断移动 如何实现蝙蝠边移动边挥翅膀 如何实现Ripley跟随鼠标移动 如何实现蝙蝠碰到Ripley移到随机位置 充分掌握重复执行和碰撞检测积木的使用 详细解题思路和步骤可以查看博客: https://scratch.blog.csdn.net/article/details/142934767 小兔子编程给小朋友们分享各种少儿编程(Scratch编程、python编程、C++编程等)学习、考级和比赛相关资料;更多少儿编程相关的学习资料,可以访问博主博客 https://blog.csdn.net/frank2102 期待小朋友们相互交流学习,有什么问题,建议或者意见可以直接给博主留言,或者私下,博主看到后会第一时间给到您相应的回复
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
前端分析-2023071100789s102102
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。