Condividi tramite


sp_notify_operator (Transact-SQL)

Si applica a: SQL Server

Invia un messaggio di posta elettronica a un operatore tramite Posta elettronica database.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_notify_operator
    [ [ @profile_name = ] N'profile_name' ]
    [ , [ @id = ] id ]
    [ , [ @name = ] N'name' ]
    [ , [ @subject = ] N'subject' ]
    [ , [ @body = ] N'body' ]
    [ , [ @file_attachments = ] N'file_attachments' ]
    [ , [ @mail_database = ] N'mail_database' ]
[ ; ]

Argomenti

[ @profile_name = ] N'profile_name'

Nome del profilo di Posta elettronica database da utilizzare per inviare il messaggio. @profile_name è sysname, con il valore predefinito NULL. Se @profile_name non viene specificato, viene usato il profilo di Posta elettronica database predefinito.

[ @id = ] id

Identificatore dell'operatore a cui inviare il messaggio. @id è int, con un valore predefinito .NULL

È necessario specificare uno dei @id o @name .

[ @name = ] N'name'

Nome dell'operatore a cui inviare il messaggio. @name è sysname, con un valore predefinito .NULL

È necessario specificare uno dei @id o @name .

Per poter ricevere messaggi, è necessario definire un indirizzo di posta elettronica per l'operatore.

[ @subject = ] N'subject'

Oggetto del messaggio di posta elettronica. @subject è nvarchar(256), con il valore predefinito NULL.

[ @body = ] N'body'

Corpo del messaggio di posta elettronica. @body è nvarchar(max), con il valore predefinito NULL.

[ @file_attachments = ] N'file_attachments'

Nome del file da allegare al messaggio di posta elettronica. @file_attachments è nvarchar(512), con un valore predefinito .NULL

[ @mail_database = ] N'mail_database'

Specifica il nome del computer host. @mail_database è sysname, con il valore predefinito msdb. Se non viene specificata alcuna @mail_database , il msdb database viene utilizzato per impostazione predefinita.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

Invia il messaggio specificato all'indirizzo di posta elettronica dell'operatore. Se l'operatore non dispone di un indirizzo di posta elettronica configurato, sp_notify_operator restituisce un errore.

Per poter inviare una notifica a un operatore, è necessario innanzitutto configurare Posta elettronica database e un database host della posta elettronica.

Autorizzazioni

Questa stored procedure è di proprietà del ruolo db_owner . È possibile concedere EXECUTE autorizzazioni per qualsiasi utente, ma queste autorizzazioni possono essere sottoposte a override durante un aggiornamento di SQL Server.

È necessario concedere ad altri utenti uno dei ruoli predefiniti del database di SQL Server Agent seguenti:msdb

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Per informazioni dettagliate sulle autorizzazioni di questi ruoli, vedere Ruoli di database predefiniti di SQL Server Agent.

Esempi

Nell'esempio seguente viene inviato un messaggio di notifica all'operatore François Ajenstat tramite il profilo AdventureWorks Administrator di Posta elettronica database. L'oggetto del messaggio di posta elettronica è Test Notification. Il messaggio di posta elettronica contiene la frase . 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