Share via


sp_notify_operator (Transact-SQL)

利用 Database Mail 將電子郵件訊息傳送給操作員。

主題連結圖示Transact-SQL 語法慣例

語法

sp_notify_operator
    [ @profile_name = ] 'profilename' ,
    [ @id = ] id ,
    [ @name = ] 'name' ,
    [ @subject = ] 'subject' ,
        [ @body = ] 'message' ,
    [ @file_attachments = ] 'attachment'
    [ @mail_database = ] 'mail_host_database'

引數

  • [@profile_name= ] 'profilename'
    用來傳送訊息的 Database Mail 設定檔名稱。profilename 是 nvarchar(128)。如果未指定 profilename,則使用預設 Database Mail 設定檔。

  • [@id= ] id
    這是訊息所要送往的操作員識別碼。id 是 int,預設值是 NULL。您必須指定 id 或 name 其中之一。

  • [@name= ] 'name'
    這是訊息所要送往的操作員名稱。name 是 nvarchar(128),預設值是 NULL。您必須指定 id 或 name 其中之一。

    [!附註]

    您必須先定義好操作員的電子郵件地址,他們才能接收訊息。

  • [@subject= ] 'subject'
    電子郵件訊息的主旨。subject 是 nvarchar(256),沒有預設值。

  • [@body= ] 'message'
    電子郵件訊息的主體。message 是 nvarchar(max),沒有預設值。

  • [@file_attachments= ] 'attachment'
    這是要附加至電子郵件訊息的檔案名稱。attachment 是 nvarchar(512),沒有預設值。

  • [@mail_database= ] 'mail_host_database'
    指定郵件主機資料庫的名稱。mail_host_database 是 nvarchar(128)。如果未指定任何 mail_host_database,依預設,會使用 msdb 資料庫。

傳回碼值

0 (成功) 或 1 (失敗)

備註

將指定的訊息傳送給指定操作員的電子郵件地址。如果未設定操作員的電子郵件地址,就會傳回錯誤。

您必須先設定好 Database Mail 和郵件主機資料庫,才能將通知傳給操作員。如需詳細資訊,請參閱<Database Mail 的如何主題>。

權限

依預設,只有系統管理員 (sysadmin) 固定伺服器角色的成員,才能夠執行這個預存程序。其他使用者必須被授與 msdb 資料庫的下列其中一個 SQL Server Agent 固定資料庫角色。

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

如需有關這些角色權限的詳細資料,請參閱<SQL Server Agent 固定資料庫角色>。

範例

下列範例會利用 AdventureWorks Administrator Database Mail 設定檔,將通知電子郵件傳給 François Ajenstat 操作員。電子郵件的主旨是 Test Notification。電子郵件訊息包含 "This is a test of notification via e-mail." 這個句子。

USE msdb ;
GO

EXEC dbo.sp_notify_operator
   @profile_name = N'AdventureWorks Administrator',
   @name = N'François Ajenstat',
   @subject = N'Test Notification',
   @body = N'This is a test of notification via e-mail.' ;
GO