DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 
DevWare  
Novidade: DevMedia lança o DevWare - Saiba mais!

Identificando Database Online e Offline no SQL Server 2005

Veja como identificar Database Online e Offline no SQL Server 2005.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

Identificando Database Online e Offline no SQL Server 2005

Script mostra se o database está online ou offline

 

por Darci Leandro

 

Olá pessoal,

É comum você administrar servidores de banco de dados que contenham databases Online e alguns Offline.

Muitas vezes as rotinas administrativas é para serem executadas apenas nos databases que estão Online e para isso criei um script que identifica o status de cada database no servidor.

 

         Script

Nesse script estou utilizando ‘System Table’ e ‘Cursor’.

 

--Declarando variáveis e Definindo cursor

DECLARE @dbName varchar(30), @Status int

DECLARE cursor_DBOnlineOffline CURSOR FOR

 

--Selecionando os databases que serão processados

SELECT name, status FROM master..SYSDATABASES

WHERE name NOT IN ('master', 'msdb', 'model', 'tempdb')

ORDER BY 2 DESC

 

--Atribuindo o resultado do select acima no cursor que foi definido

OPEN cursor_DBOnlineOffline

FETCH NEXT FROM cursor_DBOnlineOffline

INTO @dbName, @Status

 

--Iniciando o while do cursor

WHILE @@FETCH_STATUS = 0

BEGIN

         --Verifica se está Online ou Offline

         IF @Status = 66048

Print 'Database OFFLINE --> ' + @dbName

         ELSE

Print 'Database ONLINE --> ' + @dbName

        

         --Posiciona no próximo registro do cursor

         FETCH NEXT FROM cursor_DBOnlineOffline

         INTO @dbName, @Status

END

--Término do while e encerrando o cursor

CLOSE cursor_DBOnlineOffline

DEALLOCATE cursor_DBOnlineOffline

 

Resultado

O resultado será o Status e o Nome de cada database existente no seu servidor.

 

Database ONLINE --> DBCenterPRD

Database ONLINE --> DBCenterTST

Database ONLINE --> DBCenterDES

Database OFFLINE --> DLTecnologia

Database OFFLINE --> EquipeDBA

 

Conclusão

Esse script é muito útil para quem administra vários servidores e em cada servidor existir vários databases. Também é possível armazenar o resultado em alguma tabela e sempre antes de fazer alguma rotina administrativa consultar essa tabela para ver o status do database, assim, você irá evitar que mensagens desnecessárias apareçam em sua aplicação.

 

Boa sorte a todos e até a próxima...


Leandro
Leandro Oliveira (leandro@dbcenter.com.br) é Pós-Graduando em Computação Forense pela Universidade Presbiteriana Mackenzie. Graduado em Administração em Banco de Dados pela Faculdade IBTA. DBA Oracle e SQL Server formado pela Oracle University e Microsoft Official Curriculum. Atua no mercado também ...
O que você achou deste post?

    2 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Agnaldo (agnaldo@50minutos.com.br)
tem um jeito muito mais fácil e de execução mais rápida: select name, state_desc from sys.databases
[há +1 ano] - Responder

 

Darci Leandro
Agnaldo, agradeço sua colaboração e sempre que quiser fazer comentários, correções ou melhorias fique a vontade. Valeu !!!
[há +1 ano] - Responder
 
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
[Fechar] Você precisa estar logado para dar seu feedback.

Clique aqui para efetuar o login

Caso não tenha um cadastro DevMedia, clique aqui para se cadastrar (gratuito)
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03