Usuário com melhor resposta
Gerar script DDL automático dos Bancos!

Pergunta
-
Srs.,
No MSSQLserver2000 eu utilizava o "scptxfr.exe" para gerar o script ddl de todos os meus bancos. No MSSQLserver2008R2 este objeto não faz parte. Gostaria de saber se existe algo parecido com ele para automatizar esta rotina!!!
MCP: Designing and Implementing Databases with Microsoft® SQL Server™ 2000 MCP: Installing, Configuring, and Administering Microsoft® SQL Server™ 2000 MCP: Managing and Maintaining a Microsoft Windows Server 2003 Environment MCTS: Microsoft SQL Server 2005 - Implementation and Maintenance MCTS: Microsoft SQL Server 2008 - Implementation and Maintenance MCTS: Configuring Microsoft Windows Vista Wireshark Certified Network Analyst
Respostas
-
Srs.,
Cansei de procurar e resolvi criar por conta uma rotina que gere o script ddl de todas as procedures, funções e views!!
Segue o codigo:
1º -> Cria as tabelas
CREATE TABLE [dbo].[OBJETOS](
[idi] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[OBJETOSTXT](
[COLUNA] [varchar](8000) NULL
) ON [PRIMARY]
GO
2º-> Cria a procedure:
create proc P_GERA_DDL
as
declare @min int
select name from sysobjects
declare @max int
declare @nome varchar(100)
declare @sqlstr varchar(400)
declare @sqlstr2 varchar(400)
declare @database varchar(100)
declare @data varchar(100)
insert into OBJETOS
where xtype like 'P'
or xtype like 'FN'
or xtype like 'V'
select @min=MIN(idi) from OBJETOS
select @max=MAX(idi) from OBJETOS
while (select(@min)) < @max
begin
select @nome=name from OBJETOS
where idi = @min
set @sqlstr = 'insert into OBJETOSTXT
exec sp_helptext '+@nome
exec (@sqlstr)
insert into OBJETOSTXT
select 'go'
insert into OBJETOSTXT
select '--==============================================================--'
select @min = @min + 1
end
select @database=db_name()
select @data=replace(replace(convert(varchar(100),GETDATE(),113),':',''),' ','')
set @sqlstr2= 'exec xp_cmdshell ''sqlcmd -d '+ @database+' -Q "select * from OBJETOSTXT" -W -o C:\'+@database+'_'+@data+'.txt'''
exec(@sqlstr2)
truncate table OBJETOS
truncate table OBJETOSTXTgo
MCP: Designing and Implementing Databases with Microsoft® SQL Server™ 2000 MCP: Installing, Configuring, and Administering Microsoft® SQL Server™ 2000 MCP: Managing and Maintaining a Microsoft Windows Server 2003 Environment MCTS: Microsoft SQL Server 2005 - Implementation and Maintenance MCTS: Microsoft SQL Server 2008 - Implementation and Maintenance MCTS: Configuring Microsoft Windows Vista Wireshark Certified Network Analyst
- Marcado como Resposta Diogo Pettres sexta-feira, 23 de março de 2012 18:24
Todas as Respostas
-
Diogo, boa tarde.
Vc pode gerar os seus scripts DDL automaticamente clicando com o botão direito no banco ---> Tasks --> Generate Scripts --> Selecione o banco e marque a opção-- >Script all objects in the selected database
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator quinta-feira, 22 de março de 2012 15:54
- Não Marcado como Resposta Diogo Pettres sexta-feira, 23 de março de 2012 14:22
-
Eduardo,
Eu gostaria de fazer um job automatizado para realizar esta tarefa, e alem disto, eu tenho 60 bases!!!
MCP: Designing and Implementing Databases with Microsoft® SQL Server™ 2000 MCP: Installing, Configuring, and Administering Microsoft® SQL Server™ 2000 MCP: Managing and Maintaining a Microsoft Windows Server 2003 Environment MCTS: Microsoft SQL Server 2005 - Implementation and Maintenance MCTS: Microsoft SQL Server 2008 - Implementation and Maintenance MCTS: Configuring Microsoft Windows Vista Wireshark Certified Network Analyst
-
Diogo,
Veja se estes links ajudam: http://www.sqlservercentral.com/articles/Administration/howtoscheduleasqlserverdatabasecreationscript/1834/
http://www.sqlservercentral.com/Forums/Topic647768-146-1.aspx
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
-
Srs.,
Cansei de procurar e resolvi criar por conta uma rotina que gere o script ddl de todas as procedures, funções e views!!
Segue o codigo:
1º -> Cria as tabelas
CREATE TABLE [dbo].[OBJETOS](
[idi] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[OBJETOSTXT](
[COLUNA] [varchar](8000) NULL
) ON [PRIMARY]
GO
2º-> Cria a procedure:
create proc P_GERA_DDL
as
declare @min int
select name from sysobjects
declare @max int
declare @nome varchar(100)
declare @sqlstr varchar(400)
declare @sqlstr2 varchar(400)
declare @database varchar(100)
declare @data varchar(100)
insert into OBJETOS
where xtype like 'P'
or xtype like 'FN'
or xtype like 'V'
select @min=MIN(idi) from OBJETOS
select @max=MAX(idi) from OBJETOS
while (select(@min)) < @max
begin
select @nome=name from OBJETOS
where idi = @min
set @sqlstr = 'insert into OBJETOSTXT
exec sp_helptext '+@nome
exec (@sqlstr)
insert into OBJETOSTXT
select 'go'
insert into OBJETOSTXT
select '--==============================================================--'
select @min = @min + 1
end
select @database=db_name()
select @data=replace(replace(convert(varchar(100),GETDATE(),113),':',''),' ','')
set @sqlstr2= 'exec xp_cmdshell ''sqlcmd -d '+ @database+' -Q "select * from OBJETOSTXT" -W -o C:\'+@database+'_'+@data+'.txt'''
exec(@sqlstr2)
truncate table OBJETOS
truncate table OBJETOSTXTgo
MCP: Designing and Implementing Databases with Microsoft® SQL Server™ 2000 MCP: Installing, Configuring, and Administering Microsoft® SQL Server™ 2000 MCP: Managing and Maintaining a Microsoft Windows Server 2003 Environment MCTS: Microsoft SQL Server 2005 - Implementation and Maintenance MCTS: Microsoft SQL Server 2008 - Implementation and Maintenance MCTS: Configuring Microsoft Windows Vista Wireshark Certified Network Analyst
- Marcado como Resposta Diogo Pettres sexta-feira, 23 de março de 2012 18:24