MCDBA Brasil


  • Home
  • Sobre
  • Contato

Livros





Links Rápidos

SQL Server Builds (All Versions/Editions)


Download SQL Server 2017 (trial)


SQL Server 2017 Feature Pack


SQL Server 2016 Feature Pack


Cumulative Update SQL Server 2017 builds


Cumulative Update SQL Server 2016 builds


Cumulative Update SQL Server 2014 builds


Cumulative Update SQL Server 2012 builds


SQL Server 2005/2008 Samples Databases


Documentando o Servidor SQL Server


Analisando a Performance do Servidor-CheckList


Virtual PASS PT


Faça parte do maior virtual chapter do PASS com conteúdos técnicos em Português sobre SQL Server.

Todos os meses um evento Online para você! Acompanhe aqui os WebCasts já agendados

Sindicalize seu blog ou site ao VirtualPASSPT

SQL Server Blogs

SQL Server Query Processing Team


SQL Programmability & API Development Team


SQL Server Manageability Team


Latin America Support Team


Database + Disk + Performance


Microsoft SQL Server Support


SQL CLR Team


SQL Query Optimization Team


SQL 2005 Code Samples


SQL Server Express Team


SQL SMO Samples


SQL Storage Engine Team


SQL CAT Team


SQL Protocols Team


PSS SQL Server Engineers


Slava Oks on SQLOS


Ken Henderson’s blog


LUTI@Microsoft Blog


kimberly L. Trip’s blog


Fernando Garcia Blog

Dica da Semana

Executando uma SP na Inicialização do SQL Server

por Nilton Pinheiro dezembro 5, 2005 Nenhum comentário

Muitas vezes temos a necessidade de executar algum processo como por exemplo, uma query para limpar uma tabela ou um processo de cópia de dados e seria interessante se este processo pudesse ser executado logo no inicialização do SQL Server. Pois bem, talves poucos saibam mas é possível configurar uma stored procedure para ser executa na inicialização do SQL Server. Isto é feito definindo a opção autoexecution para a procedure.

Antes de definir a opção autoexecution para uma prodedure, duas regrinhas devem ser seguidas:


1. A procedure a ser executada na inicialização deve ser criada no database master.
2. Antes de definir a opção autoexecution, a procedure já deve existir.


Seguida as regras, podemos então utilizar a procedure de sistema sp_procoption para definir a opção autoexecution para nossa procedure e com isso teremos a procedure sendo executada a cada vez que o SQL Server iniciar. A sintaxe para a utilização da sp_procoption é a seguinte.


sp_procoption @ProcName = ‘sua_procedure’,
              @OptionName = ‘startup’,
              @OptionValue = ‘on’


No exemplo acima, definimos a opção autoexecution para a procedure sua_procedure por atribuir o valor startup para @OptionName e on para @OptionValue. Após executar o statement acima a procedure sua_procedure será executada a cada vez que o SQL Server iniciar.


Quando quisermos remover a opção autoexecution de uma procedure, basta executar o statement definindo o valor off para @OptionValue.


sp_procoption @ProcName = ‘sua_procedure’,
              @OptionName = ‘startup’,
              @OptionValue = ‘off’


Ao executar o statement acima, a procedure sua_procedure não será mais executada na inicialização do SQL Server.


Agora você pode estar fazendo a seguinte pergunta: Como fazer para identificar se uma procedure está definida como autoexecution? É simples, toda procedure possui uma propriedade chamada ExecIsStartup a qual indica se a procedure está definida como autoexecution ou não. Para consultar esta propriedade devemos utilizar a função de sistema OBJECTPROPERTY().


No exemplo abaixo, verificamos se a procedure sua_procedure está definida para autoexecution ou não. Quando o valor retornado for 1, indica que a procedure está definida como autoexecution e portanto será executada na inicialização do SQL Server, quando o valor retornado for 0 a procedure não está definida como autoexecution.


SELECT OBJECTPROPERTY(OBJECT_ID(‘sua_procedure’),’ExecIsStartup’)


OU
 
USE master
GO
IF OBJECTPROPERTY (object_id(‘sua_procedure’),’ExecIsStartup’) = 1
   print ‘A procedure sua_procedure será executada na inicialização’
ELSE
   print ‘A procedure sua_procedure não será executada na inicialização’



Executando na inicialização do SQL Server Agent


Para executar um processo ou uma procedure na inicialização do SQL Server Agent, já não utilizamos mais a procedure de sistema sp_procoption. No caso do SQL Agent devemos primeiramente criar um Job para executar o processo ou a procedure. Estando o Job criado, definimos então a opção Schedule Type como Start automatically when SQL Server Agent starts.


Para definir o Job para ser executado na inicialização do SQL Agent faça o seguinte:


1. No Enterprise Manager, localize Management/SQL Server Agent/Jobs
2. Crie um novo Job ou clique com o botão direito sobre um Job existente e selecione Propriedades
3. Na guia Schedules, crie um novo schedule ou edite um já existente
4. Em Schedule Type, selecione a opção Start automatically when SQL Server Agent starts.


Pronto, com isso o job será executado automaticamente a cada vez que o SQL Server Agent iniciar.


Bom pessoal, caso alguém tenha a necessidade de executar algum processo na inicialização do SQL Server ou SQL Server Agent, esta dica deve resolver o problema. Detalhe, os procedimentos também são válidos para o SQL Server 2005.


Um abraço a todos
Nilton Pinheiro

Avaliação:
Compartilhe:
  • Anterior Obtendo o Plano de Execução com o Profiler20 anos atrás
  • Próximo Manipulando Dados em colunas TEXT20 anos atrás

Deixe uma resposta Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

MVP Reconnect Award

Categorias

  • Artigos (359)
  • Dica da Semana (95)
  • Documentação (54)
  • Downloads (113)
  • MSDE 2000 (3)
  • Sem categoria (1)
  • Tutoriais (9)

Posts recentes

  • #FechouBrasil #PartiuPortugal
  • Brigando com o erro “The cached MSI file is missing”
  • MCDBABRASIL está de volta
  • Documentando o Servidor SQL Server
  • Brigando com os Erros 17182, 17826 e 17120

SQL Server AlwaysOn Video Series

Video1: Introdução ao SQLServer2012 AlwaysOn


Video2: Introdução ao SQLServer2012 AlwaysOn Availability Group


Video3: Introdução ao SQLServer2012 AlwaysOn AVG-Demo


Video4: Introdução ao SQLServer2012 AlwaysOn Listener


Video5: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries


Video6: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries-Demo


Video7: Introdução ao SQLServer2012 AlwaysOn Failover Clustering


Serie SQL Server Failover Clustering End-to-End

Parte 1: Configuração da Rede e Ambiente


Parte 2: Configurando o Windows 2008 R2 Domain Controler e DNS


Parte 3: Preparando os nós para o Failover Cluster


Parte 4: Configurando um Failover Cluster de 2 nós


Parte 5: Configurando as LUNs no iSCSI Software Target (Parte 1)


Parte 6: Configurando as LUNs no iSCSI Software Target (Parte 2)


Parte 7: Apresentando as LUNs para os nós do Failover Cluster


Parte 8: Configurando os discos no Failover Cluster


Parte 9: Instalando a primeira instância virtual do SQL Server 2008


Parte 10: Instalando a segunda instância virtual do SQL Server 2008


Parte 11: Instalando e Configurando o MSDTC no Failover Cluster


Parte 12: Configurando Mount Points no Cluster e SQL Server 2008


Vídeo Extra: Removendo uma Instância do SQL Server 2008 R2 em Cluster


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering Overview


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering na Prática

Menu

  • Home
  • Sobre
  • Contato

Mais

  • RSS Feeds
2026 MCDBA Brasil.