DECLARE @LastFullBackupTable TABLE ( name VARCHAR(256) , LastFullBackupDate DATETIME ) INSERT INTO @LastFullBackupTable ( name , LastFullBackupDate ) SELECT QUOTENAME(db.name) , MAX(backup_finish_date) FROM sys.databases AS db JOIN msdb.dbo.backupset (NOLOCK) AS BkpSet ON BkpSet.database_name = db.name WHERE type = 'D' GROUP BY db.name ORDER BY MAX(backup_finish_date) DESC SELECT db.name , ISNULL(tmp.LastFullBackupDate, '') AS LastFullBackup FROM @LastFullBackupTable AS tmp RIGHT JOIN sys.databases AS db ON tmp.name = QUOTENAME(db.name) WHERE db.name <> 'tempdb'
SELECT * FROM Busca_de_Conhecimento WHERE Tema LIKE '% Banco de Dados %' or Tema LIKE '% Assuntos relacionados%'
sexta-feira, 26 de julho de 2013
O ultimo backup full executado com sucesso
O script executa a leitura na tabela backupset do banco de dados msdb procurando pelo último backup full completo.
terça-feira, 23 de julho de 2013
Utilizando SQLCMD para executar script em vários servidores
Para utilizar o sqlcmd basta ir no prompt de comando do Windows e sua sintaxe é bem simples como podemos ver abaixo.
Utilizando sqlcmd com autenticação SQL Server:
sqlcmd -S NomeServidor -d NomeBancoDados -U NomeUsuario -P Senha -i Caminho\NomeArquivo.sql
Utilizando sqlcmd com autenticação integrada:
sqlcmd -E -S NomeServidor -d NomeBancoDados -i Caminho\NomeArquivo.sql
Espero ter ajudado!!!
O que é a ferramenta SQLCMD?
O SQLCMD é uma ferramenta de linha de comando que serve para executar comandos e scripts Transact-SQL em instâncias do SQL Server 2008, o SQLCMD substitui o OSQL do SQL Server 2000.
Vou mostrar duas diferentes formas como se conectar no SQL Server 2008 ou 2008 R2, no caso mostrar em uma maquina local e como me conectar em um servidor com a autenticação do próprio SQL Server. Para se conectar localmente no SQL Server 2008 ou 2008 R2 utilize o seguinte código no prompt de comandos:
SQLCMD -E -S LOCALHOST\(NOME DA INSTÂNCIA) |
As opções de autenticação (-E, -U e -P) que especificam as credenciais que o sqlcmd usa para se conectar à instância do SQL Server. A opção de servidor (-S) é a que identifica a instância do Microsoft SQL Server, com qual SQLCMD se conecta.
Antes de apertar a tecla ENTER, preste atenção no ponto marcado em vermelho, ainda não está no contexto do SQLCMD, como mostra a figura a figura 1:
Figura 1. Janela do Prompt de Comandos.
Neste próximo ponto estaremos no contexto do SQLCMD, como pode ser visualizado com a marcação em vermelho, como mostra a figura 2:
Figura 2. Janela do Prompt de Comandos no SQLCMD.
Agora vamos para o passo seguinte, conectar no SQLCMD usando o login SA do SQL Server, para isso a sintaxe é um pouco diferente:
SQLCMD -U SA -P (SENHA) -S LOCALHOST\(NOME DA INSTÂNCIA) |
Veja o exemplo de como seria no prompt de comandos, como mostra a figura 3:
Figura 3. Janela do Prompt de Comandos no SQLCMD (outra forma de conexão).
Agora vamos fazer alguns comandos T-SQL utilizando a ferramenta SQLCMD.
Primeiro passo:
Entre no promp de comandos, em seguida digite um dos comandos informados anteriormente:
SQLCMD -E -S LOCALHOST\(NOME DA INSTÂNCIA SQLCMD -U SA -P (SENHA) -S LOCALHOST\(NOME DA INSTÂNCIA) |
Depois que você se conectar ao SQLCMD, utilize o comando USE para começar a acessar um banco de dados qualquer, no meu caso vou utilizar o AdventureWorks e depois aperte a tecla ENTER, como mostra a figura 4:
Figura 4. Janela do Prompt de Comandos no SQLCMD iniciando acesso ao banco.
Ainda não estamos propriamente dito no banco de dados selecionado, temos que colocar uma palavra reservada do SQL Server chamada GO depois aperte a tecla ENTER, como mostra a figura 5 :
Figura 5. Janela do Promp de Comandos no SQLCMD já no contexto do banco.
Segundo passo:
Neste momento vamos fazer um SELECT na tabela Person.Contact do banco AdventureWorks, utilizar o seguinte código:
SELECT * FROM Person.Contact |
O resultado sairá um pouco estranho, mas a utilização do SQLCMD em alguns momentos se torna uma ferramenta indispensável, veja na figura 6:
Figura 6. Janela do SQLCMD mostrando os dados da tabela Person Contact.
Agora vamos criar um banco de dados de exemplo e popular uma ou duas tabelas, logo abaixo segue o código:
CREATE DATABASE EXEMPLO GO
|
Veja na próxima imagem, nunca esqueça da palavra reservada GO, sem ela o seu comando não vai ser executado, como mostra a figura 7:
Figura 7. Janela do SQLCMD criando um bando de dados.
Em seguinda pode abrir seu Management Studio para confirmar a criação do banco de dados, caso não apareça, clique com o botão direito na pasta databases e clique em Refresh, como mostra a figura 8 :
Figura 8. Janela do Management Studio em especifico Object Explorer.
Vamos criar uma tabela no nosso banco EXEMPLO, logo abaixo segue o código de exemplo:
CREATE TABLE TABELA ( COD INT NOT NULL, NOME VARCHAR (40), ENDERECO VARCHAR (60) TELEFONE INT )
|
Agora note como esse código fica no SQLCMD, o visual não é tão agradável mas da pra trabalhar sem nenhum problema, como mostra na figura 9:
Figura 9. Janela do SQLCMD, criando uma tabela.
Vamos utilizar o comando INSERT, para ver qual a reação do SQLCMD, como mostra a figura 10:
Figura 10. Janela do SQLCMD, inserindo dados.
Veja agora no Management Studio, se existe algo de errado ou alguma diferença, como mostra a figura 11:
Figura 11. Janela do Management Studio, com o que foi feito no SQLCMD.
Mas digamos agora que você tenha aí um script pronto e deseja executá-lo no SQLCMD, além disso deseja gravar o resultado da execução deste script num arquivo txt. Vamos exemplificar esta situação utilizando o script abaixo que será salvo na unidade c: num arquivo identificado como teste.sql.
USE northwind
SELECT
table_name nomeTabela,
column_name nomeColuna,
data_type tipoDaColuna,
isnull(character_set_name, ‘NoUnicode’) campoUnicode
FROM
information_schema.columns
WHERE
table_name = ‘Categories’
USE northwind
– lista todas as colunas da tabela Categories da base Northwind
SELECT
table_name nomeTabela,
column_name nomeColuna,
data_type tipoDaColuna,
isnull(character_set_name, ‘NoUnicode’) campoUnicode
FROM
information_schema.columns
WHERE
table_name = ‘Categories’
Veja como fica a linha dessa chamada utilizando o SQLCMD:
sqlcmd -E -S LOCALHOSTSQL05 -i”c:teste.sql” -o”resultado.txt”
O parâmetro –i indica o arquivo de entrada (INPUT), que contém o script que será executado. O parâmetro –o indica qual será o arquivo de saída (OUTPUT), que conterá o resultado da execução.
Como qualquer assunto no SQL Server, este é mais um que poderíamos discorrer por páginas e mais páginas… mas por enquanto ficamos por aqui. Creio que essa introdução é o suficiente pra entendemos o potencial desta ferramenta.
Assinar:
Postagens (Atom)