quinta-feira, 20 de agosto de 2009

Como executar uma Procedure automaticamente no Start do banco.


Algumas vezes é necessário executar algum processo, stored procedure assim que o banco de dados for iniciado. O exemplo abaixo eu criei para me enviar um e-mail, caso o banco seja reiniciado sem eu saber.

Primeiro eu crio o processo que eu quero que seja executado em uma stored procedure. Ela tem que ser criada no Master.

use master
GO

CREATE PROCEDURE sp_AlertStartDBAS
BEGIN
Declare @sbody as VarChar(4000)

Declare @ssubject as VarChar(4000)

set @sbody = 'O servidor ' + CONVERT(sysname, SERVERPROPERTY('servername')) + ' foi inicializado às ' + Cast(getdate() as VarChar)
set @ssubject = 'Inicialização de Banco de Dados: ' + CONVERT(sysname, SERVERPROPERTY('servername'))

EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Admin', @recipients = 'seuemail@provedor.com.br', @body = @sbody, @subject = @ssubject;

END



O próximo passo é configurar ela para ser executada no Start usando a proc sp_procoption. ( http://msdn.microsoft.com/en-us/library/ms181720.aspx )

EXECUTE sp_procoption @procname = 'sp_AlertStartDB', @optionname = 'startup', @optionvalue = 'on'

Um comentário: