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

Artigos

Gerando Script dos Objetos com o Utilitário SCPTXFR.EXE

por Nilton Pinheiro janeiro 7, 2007 Nenhum comentário

Não são raros os momentos em que um DBA precisa gerar script dos objetos de uma base de dados, seja para a criação de novos objetos, documentação ou até mesmo criação de novas bases de dados. O SQL Server nos oferece vários caminhos para gerar script dos objetos, entre eles, no Enterprise Manager podemos selecionar o menu Tools|Generate SQL Script, podemos clicar com o botão direito sobre a bse de dados, selecionar All Task e também teremos a opção Generate SQL Script. O problema é que este processo requer atenção e muitas das vezes o scripts devem ser gerados objeto a objeto, caso contrário poderemos ter problemas de dependências no momento de utilização dos scripts.


Bom, e se eu disser que existe um utilitário do SQL Server 7 e 2000 que permite gerar script de todos os objetos de uma base de forma simples e rápida?


O UTILITÁRIO SCPTXFR.EXE


O utilitário SCPTXFR.EXE é um utilitário de linha de comando disponível no SQL Server 7.0 e 2000. Em uma instalação padrão, ele pode ser encontrado no caminho C:/Program Files/Microsoft SQL Server/MSSQL/Upgrade. Com ele podemos gerar um script completo (tabelas, procedures, trigger, views, índices, usuários, permissões, etc…) de uma base de dados de forma automática.


Originalmente o SCPTXFR.EXE foi criado para facilitar ou permitir a migração de bases de dados do SQL Server 6.5 para o SQL Server 7.0 ou 2000, mas como veremos, ele pode ser muito útil em nosso dia-a-dia. Podendo inclusive ser utilizado para gerar scripts de databases do SQL Server 2005.


Nota: Caso o utilitário não esteja em sua instalação padrão, é possível copiá-lo do CD de instalação do SQL Server 2000 (qualquer edição) no caminho x86/upgrade. Neste caso, pode ser preciso copiar também o arquivo SCPTXFR.rll localizado no caminho x86/upgrade/res/1033. Se preferir, baixe o utilitário aqui.


COMO USAR O UTILITÁRIO


A utilização do utilitário SCPTXFR.EXE é muito simples. Para os exemplos abaixo, estarei assumindo que ele está localizado no caminho padrão C:/Program Files/Microsoft SQL Server/MSSQL/Upgrade.


O utilitário possui várias parâmetros os quais podem ser visualizados digitando SCPTXFR /? ou SCPTXFR -?. Os principais são:


/s <nome> Especifica o nome do servidor onde se encontra a base da qual será gerado o script
/d <nome> Especifica o nome da base da qual será gerado o script
/I Usa segurança integrada do Windows, utiliza as permissões o usuário logado no windows (trusted connections).
/P Especifica a senha para o login ‘sa’. Note que se a opção /I não for usada, o login ID sempre será ‘sa’.
/r Inclui a opção de DROP dos objetos no script
/F <caminho> Cria um arquivo separado para cada tipo de objeto. <caminho> deve finalizar com o nome do diretório onde os scripts deverão ser criados. Ao usar esta opção, o utilitário criará um arquivo para cada tipo de objeto no formato <servidor>.<database>.<extensão>. As principais extensões estão relacionadas no final deste artigo.
/f <nome> Cria um arquivo contendo o script de todos os objetos. <nome> deve finalizar com o nome do arquivo sobre o qual os scripts deverão ser salvos.


Nota: Esteja atendo a deixar sempre um espaço entre a opção e o parâmetro, caso contrário, a execução do comando falhará com a mensagem abaixo:


“Invalid command arguments”


Exemplo:


 SCPTXFR /sSERVIDOR_X … — erro
 SCPTXFR /s SERVIDOR_X … — correto


EXEMPLOS:


Segue abaixo alguns exemplos de utilização do utilitário.


Exemplo 1: Este exemplo gera o scripts de todos os objetos da base pubs no arquivo script_pubs.txt, incluindo o statement para exclusão dos objetos caso eles já existam.


C:/Program Files/Microsoft SQL Server/MSSQL/Upgrade/scptxfr.exe /s SERVSQL2000 /I /r /d pubs /f C:/temp/script_pubs.txt


Você também pode executar o utilitário via QA como no exemplo abaixo:


master..xp_cmdshell ‘”C:/Program Files/Microsoft SQL Server/MSSQL/Upgrade/scptxfr.exe” /s SERVSQL2000 /I /r /d pubs /f C:/temp/script_pubs.txt’


Exemplo 2: Este exemplo gera script de todos os objetos da base pubs no diretório C: emp, criando um arquivo separados para cada tipo de objeto.


C:/Program Files/Microsoft SQL Server/MSSQL/Upgrade/scptxfr.exe /s SERVSQL2000 /I /r /d pubs /F C:/temp


Você também pode executar o utilitário via QA como no exemplo abaixo:


master..xp_cmdshell ‘”C:/Program Files/Microsoft SQL Server/MSSQL/Upgrade/scptxfr.exe” /s SERVSQL2000 /I /r /d pubs /F C:/temp’


Exemplo 3: Assumindo que podemos executar o utilitário via QA, que tal uma procedure para gerar script de todas as bases do servidor? O exemplo abaixo cria um procedure que gera o script de todos os objetos para cada banco de dados existentes no servidor. Será criado um arquivo para cada banco de dados no formato <banco>_<data>.txt


CREATE PROCEDURE sp_usrscriptgeral @dbname sysname
as
declare @command varchar(1000)
declare @texttime varchar(10)
set @texttime = convert(varchar, getdate(), 102)
set @command = ‘”C:/Program Files/Microsoft SQL Server/MSSQL/Upgrade/scptxfr.exe” /s SERVSQL2000 /I /r /d ‘ + @dbname + ‘ /f C:/temp’ + @dbname + ‘_’ + @texttime +  ‘.txt /r’
print @command
exec  master..xp_cmdshell @command


— Executa a procedure para cada banco do servidor
exec sp_MSForeachDB “exec sp_usrscriptgeral ?”


EXTENSÕES DE ARQUIVOS GERADAS PELO UTILITÁRIO


Como dito acima, se você utilizar a opção /F, o utilitário estará gerando um arquivo separado para cada tipo de objeto existente no database. Ou seja, um arquivo para tabela com o script de DROP/CREATE das tabelas e assim para todos os demais objetos.


A lista abaixo relaciona a extensão dos principais tipos de objetos:


DEF: Script das defaults
DP1..n: Script de Drop das stored procedures
DR1: Script de Drop para objetos que não sejam stored procedures
FKY: Script das foreign keys
ID1..n: Script dos indexes
PRC: Script para criação das stored procedures
RUL: Script para criação das rules
TAB: Script para criação das tabelas
TRG: Script para criação das triggers
UDF: Script para criação das funções
UDT: Script para criação das User Defined types
USR: Script para criação dos usuários
VIW: Script para criação das views
LOG: Log de erros


Como vimos, o utilitário SCPTXFR.EXE é uma “mão na roda”. Além de permitir a geração dos scripts de forma simples e rápida, com sua utilização não temos aqueles problemas de dependências que normalmente temos quando geramos os scripts pelo método convencional.


Uma boa prática aqui poderia ser a criação de um job, pois assim será possível manter uma documentação completa de todas as bases do servidor. Para isto, basta utilizar a procedure acima e agendá-la para execução nos horários que acharem conveniente.


Um abraço a todos
Nilton Pinheiro

Avaliação:
Compartilhe:
  • Anterior SQL Server – Best Practices19 anos atrás
  • Próximo Como acessar o SQL Server no Active Server Pages (ASP)19 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.