Dicas

Executar o mesmo comando para todos os bancos de dados no SQL Server.

Veja como executar o mesmo comando para todos os bancos de dados no SQL Server.

Veja como executar o mesmo comando para todos os bancos de dados no SQL Server.

Problema: Preciso executar um mesmo comando para todas os meus bancos de dados em uma instância SQL Server, mas hoje o que eu normalmente faço é acessar todos os bancos de dados manualmente para executar esse comando.

Solução: Para você executar um mesmo comando em todos os bancos de dados simultaneamente, você precisa conhecer a procedure sp_MSforeachdb

EXEC sp_MSforeachdb @command

@command é uma variável do tipo string.

O comando abaixo retorna as 10 primeiras tabelas em cada banco de dados ordenado por nome da tabela.

DECLARE @command varchar(1000) 
SELECT @command = 'USE ? SELECT TOP 10 name FROM sysobjects WHERE xtype = ''U'' ORDER BY name' 
EXEC sp_MSforeachdb @command

Caso você não queira declarar uma variável para colocar nela o texto do comando, você pode alternativamente colocar o comando diretamente da seguinte forma:

EXEC sp_MSforeachdb 'USE ? SELECT TOP 10 name FROM sysobjects WHERE xtype = ''U'' ORDER BY name'

Criar um objeto em cada banco de dados com um simples comando:

Se você deseja executar um comando DDL para todas as bases de dados, você poderá executar o comando abaixo:

DECLARE @command varchar(1000)

SELECT @command = 'IF ''?'' NOT IN(''master'', ''model'', ''msdb'', ''tempdb'') 
BEGIN USE ? EXEC(''CREATE PROCEDURE Proc_UsuariosDoSQL AS SELECT uid, name, createdate, updatedate FROM sys.sysusers ORDER BY name'') END'

EXEC sp_MSforeachdb @command

Como você pode observar, há itens adicionais a serem levados em consideração ao limitar o escopo da procedure sp_MSforeachdb, especialmente ao criar ou modificar objetos. Você também deve definir o código para executar se a instrução IF for verdadeira usando palavras-chave T-SQL BEGIN e END. Você deve tomar nota que o USE? Declaração está contida no bloco BEGIN … END. É importante lembrar as principais regras T-SQL. Nesse caso, a regra de que ao criar uma procedure, a frase CREATE PROCEDURE deve ser a primeira linha de código a ser executada. Para fazer isso, você pode encapsular o código CREATE PROCEDURE dentro de uma função EXEC.

Executar o mesmo comando para todos os bancos de dados no SQL Server.
The following two tabs change content below.

Wesley Mota

DBA SQL Server
Profissional graduado em Banco de Dados e Sistemas de Informação com mais de 7 anos de experiência em empresas de software. Certificado MCSA Microsoft SQL Server possui intensa vivência em administração de banco de dados, Tunning, Performance SQL Server, levantamento de melhorias e monitoramento de banco de dados e servidores SQL Server. Consultoria SQL Server em diversos clientes no Brasil e ao redor do mundo. Escritor no blog dbasqlserverbr.com.br/blog. Onde compartilha conhecimento, experiências e dicas de performance para DBAs SQL Server. Conhecimentos em Oracle e ambientes de alta disponibilidade. Desenvolvimento de softwares web e mobile.Gerenciamento de equipe e projetos.

Latest posts by Wesley Mota (see all)

Wesley Mota

Profissional graduado em Banco de Dados e Sistemas de Informação com mais de 7 anos de experiência em empresas de software. Certificado MCSA Microsoft SQL Server possui intensa vivência em administração de banco de dados, Tunning, Performance SQL Server, levantamento de melhorias e monitoramento de banco de dados e servidores SQL Server. Consultoria SQL Server em diversos clientes no Brasil e ao redor do mundo. Escritor no blog dbasqlserverbr.com.br/blog. Onde compartilha conhecimento, experiências e dicas de performance para DBAs SQL Server. Conhecimentos em Oracle e ambientes de alta disponibilidade. Desenvolvimento de softwares web e mobile.Gerenciamento de equipe e projetos.

Share
Published by
Wesley Mota

Recent Posts

Utforska Topplista: Casinon utan licens med flest Megaways-slots

Utforska Topplista: Casinon utan licens med flest Megaways-slotsDet är ingen hemlighet att Megaways-slots har blivit…

4 dias ago

Comment obtenir de laide sous Windows 10 ?

ContentCultivo del pimiento¿Cómo beneficia la salud el pimentón ahumado?Enfermedades causadas por bacterias y virusPimentón de…

6 dias ago

NUEVOS JUEGOS ¡Juega Gratis Online!

Content¿Cuáles son los mejores Nuevos Juegos gratuitos online?Qué es Poki? Ofrecemos acceso instantáneo a todos…

2 semanas ago

Il Camilleri-linguaggio

ContentErzählen Sie Ihre Geschichte: von Kampanien bis ins Herz Brasiliens, die Geschichte der Familie LandriEl…

2 semanas ago

Apartamento com 1 quarto na Avenida Beira Mar, 001, Boa Viagem, Recife PE ID: 26822915

ContentPrefeitura anuncia novo polo no Parque Eduardo Campos, no Pina, e espalha shows pela cidadeMarilia…

2 semanas ago

Tübingen entdecken Universitätsstadt Tübingen

ContentStadtrundgänge Die Universitätsstadt Tübingen sucht seeger tübingen juwelier regelmäßig Verwaltungskräfte in verschiedenen Organisationseinheiten. Die Universitätsstadt…

2 semanas ago