Usuário com melhor resposta
Script completo do banco de dados SQLServer

Pergunta
-
Olá Pessoal,
Uso VS2013, SQLServer2014 express, c#
Gostaria de colocar no meu site um botão pra gerar um script de insert de todos os dados do banco.
Tipo quando o usuário clicasse no botão, seria feito um backup dos dados do banco e salvo em alguma pasta que eu definisse, tem como gerar esse script?
Álvaro Luiz
Respostas
-
Alvaro,
Você pode utilizar o comando de BACKUP do SQL Server.
Observação: este comando não irá gerar os scripts de forma amigável do banco de dados e sim apenas um arquivo de backup.
Seguem referências abaixo para leitura:
https://msdn.microsoft.com/pt-br/library/ms187510(v=sql.120).aspx
https://msdn.microsoft.com/pt-br/library/ms187048(v=sql.120).aspx
Felipe Lauffer MCSA: SQL Server | MCP
- Editado FLauffer terça-feira, 19 de janeiro de 2016 11:41
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 19 de janeiro de 2016 13:25
- Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 13:27
-
Alvaro,
Veja se estes exemplos podem te ajudar:
select 'Backup Database '+sd.name + ' To Disk = '+'''D:\MSSQL2005-Backup\'+sd.name+'.Bak'+''' With Init, Stats = 10, Description = '+'''Backup para armazenamento e remoção - Database - '+sd.Name+''''+Char(13)+'Go' from Sys.SysDatabases SD where sd.dbid >=9 and sd.name like '%new%'
Declare @Comando Varchar(200) Set @Comando = 'BACKUP DATABASE SIG'+Char(10)+ 'TO DISK = '+'''D:\MSSQL2005-Backup\BACKUP-SIG-'+''+Convert(VarChar(10),GetDate(),112)+'.bak'''+Char(10)+ 'WITH INIT, DESCRIPTION = '+'''Backup Full SIG''' Exec(@comando)
Set DateFirst 1 Declare @DiadaSemana TinyInt, @Hora Char(5) Select @DiadaSemana = DATEPART (WeekDay, Getdate()), @Hora=Convert(Char(5),GetDate(),114) If (@DiadaSemana = 1) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Segunda\Protheus10-Segunda-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Segunda\Protheus10-Segunda-Noite.bak' With Init, Format; End If (@DiadaSemana = 2) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Terça\Protheus10-Terça-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Terça\Protheus10-Terça-Noite.bak' With Init, Format; End If (@DiadaSemana = 3) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Quarta\Protheus10-Quarta-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Quarta\Protheus10-Quarta-Noite.bak' With Init, Format; End If (@DiadaSemana = 4) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Quinta\Protheus10-Quinta-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Quinta\Protheus10-Quinta-Noite.bak' With Init, Format; End If (@DiadaSemana = 5) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Sexta\Protheus10-Sexta-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Sexta\Protheus10-Sexta-Noite.bak' With Init, Format; End If (@DiadaSemana = 6) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Sábado\Protheus10-Sábado-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Sábado\Protheus10-Sábado-Noite.bak' With Init, Format; End If (@DiadaSemana = 7) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Domingo\Protheus10-Domingo-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Domingo\Protheus10-Domingo-Noite.bak' With Init, Format; End
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 13:27
- Editado Junior Galvão - MVPMVP terça-feira, 26 de janeiro de 2016 12:22
Todas as Respostas
-
Alvaro,
Você pode utilizar o comando de BACKUP do SQL Server.
Observação: este comando não irá gerar os scripts de forma amigável do banco de dados e sim apenas um arquivo de backup.
Seguem referências abaixo para leitura:
https://msdn.microsoft.com/pt-br/library/ms187510(v=sql.120).aspx
https://msdn.microsoft.com/pt-br/library/ms187048(v=sql.120).aspx
Felipe Lauffer MCSA: SQL Server | MCP
- Editado FLauffer terça-feira, 19 de janeiro de 2016 11:41
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 19 de janeiro de 2016 13:25
- Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 13:27
-
-
Alvaro,
Veja se estes exemplos podem te ajudar:
select 'Backup Database '+sd.name + ' To Disk = '+'''D:\MSSQL2005-Backup\'+sd.name+'.Bak'+''' With Init, Stats = 10, Description = '+'''Backup para armazenamento e remoção - Database - '+sd.Name+''''+Char(13)+'Go' from Sys.SysDatabases SD where sd.dbid >=9 and sd.name like '%new%'
Declare @Comando Varchar(200) Set @Comando = 'BACKUP DATABASE SIG'+Char(10)+ 'TO DISK = '+'''D:\MSSQL2005-Backup\BACKUP-SIG-'+''+Convert(VarChar(10),GetDate(),112)+'.bak'''+Char(10)+ 'WITH INIT, DESCRIPTION = '+'''Backup Full SIG''' Exec(@comando)
Set DateFirst 1 Declare @DiadaSemana TinyInt, @Hora Char(5) Select @DiadaSemana = DATEPART (WeekDay, Getdate()), @Hora=Convert(Char(5),GetDate(),114) If (@DiadaSemana = 1) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Segunda\Protheus10-Segunda-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Segunda\Protheus10-Segunda-Noite.bak' With Init, Format; End If (@DiadaSemana = 2) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Terça\Protheus10-Terça-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Terça\Protheus10-Terça-Noite.bak' With Init, Format; End If (@DiadaSemana = 3) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Quarta\Protheus10-Quarta-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Quarta\Protheus10-Quarta-Noite.bak' With Init, Format; End If (@DiadaSemana = 4) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Quinta\Protheus10-Quinta-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Quinta\Protheus10-Quinta-Noite.bak' With Init, Format; End If (@DiadaSemana = 5) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Sexta\Protheus10-Sexta-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Sexta\Protheus10-Sexta-Noite.bak' With Init, Format; End If (@DiadaSemana = 6) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Sábado\Protheus10-Sábado-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Sábado\Protheus10-Sábado-Noite.bak' With Init, Format; End If (@DiadaSemana = 7) Begin If (@Hora='12:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Domingo\Protheus10-Domingo-Manha.bak' With Init, Format; If (@Hora='22:00') Backup Database Protheus10 To Disk = 'F:\Backup-SQL\Domingo\Protheus10-Domingo-Noite.bak' With Init, Format; End
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 13:27
- Editado Junior Galvão - MVPMVP terça-feira, 26 de janeiro de 2016 12:22
-
Bom dia,
Por falta de retorno do usuário, esta thread será encerrada.
Caso seja necessário, por gentileza, abra uma thread nova.
AtenciosamenteMarcos SJ
Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.