none
Retorna somente a bando de dados que não seja de sistema RRS feed

  • Pergunta

  • Prezado(a)s, Boa Tarde !

    Gostaria de retornar  a partir da "SYS.DATABASES" somente os banco de dados que não seja banco de dados de sistema. Como posso criar essa consulta ? A "sys.databases" não contém nenhuma coluna que especifique !

    segunda-feira, 17 de março de 2014 20:49

Respostas

  • Getulio,

    Sabendo que temos ao menos 4 bancos de dados de sistemas e eles são sempre os primeiros à serem criados, podemos fazer dois tipos de consultas:

    SELECT * FROM SYS.DATABASES 
    WHERE (database_id > 4 OR is_distributor = 1)
    
    --OU SEPARANDO POR NOMES
    SELECT * FROM SYS.DATABASES WHERE name NOT IN ('master','tempdb','model','msdb')
    
    
    Caso você tenha outros bancos instalados posteriormente, como os bancos do ReportServer, a segunda consulta ajuda mais.

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Sugerido como Resposta Durval Ramos terça-feira, 20 de maio de 2014 18:36
    • Marcado como Resposta Getulio Torres S segunda-feira, 2 de junho de 2014 13:49
    terça-feira, 18 de março de 2014 11:19
  • SELECT * FROM sys.sql_modules -- seleciona os módulos, como procedure. views e funções
    
    SELECT * FROM sys.objects -- contém as tabelas
    
    
    SELECT 
    	obj.name,
    	obj.typedesc
    FROM sys.sql_modules mod 
    JOIN sys.objects obj
    on mod.objectID = obj.objectID
    where mod.definition LIKE '%@MINHA_PROCEDURE%'


    Se a resposta foi útil por favor qualifique. Italo Biguzi Duarte, Desenvolvedor ASP.NET C#, Italo.biguzzi@gmail.com

    terça-feira, 18 de março de 2014 12:19

Todas as Respostas

  • Getulio,

    Sabendo que temos ao menos 4 bancos de dados de sistemas e eles são sempre os primeiros à serem criados, podemos fazer dois tipos de consultas:

    SELECT * FROM SYS.DATABASES 
    WHERE (database_id > 4 OR is_distributor = 1)
    
    --OU SEPARANDO POR NOMES
    SELECT * FROM SYS.DATABASES WHERE name NOT IN ('master','tempdb','model','msdb')
    
    
    Caso você tenha outros bancos instalados posteriormente, como os bancos do ReportServer, a segunda consulta ajuda mais.

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Sugerido como Resposta Durval Ramos terça-feira, 20 de maio de 2014 18:36
    • Marcado como Resposta Getulio Torres S segunda-feira, 2 de junho de 2014 13:49
    terça-feira, 18 de março de 2014 11:19
  • SELECT * FROM sys.sql_modules -- seleciona os módulos, como procedure. views e funções
    
    SELECT * FROM sys.objects -- contém as tabelas
    
    
    SELECT 
    	obj.name,
    	obj.typedesc
    FROM sys.sql_modules mod 
    JOIN sys.objects obj
    on mod.objectID = obj.objectID
    where mod.definition LIKE '%@MINHA_PROCEDURE%'


    Se a resposta foi útil por favor qualifique. Italo Biguzi Duarte, Desenvolvedor ASP.NET C#, Italo.biguzzi@gmail.com

    terça-feira, 18 de março de 2014 12:19