none
Script completo do banco de dados SQLServer RRS feed

  • 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

    terça-feira, 19 de janeiro de 2016 11:23

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
    terça-feira, 19 de janeiro de 2016 11:41
  • 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]


    terça-feira, 19 de janeiro de 2016 13:28

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
    terça-feira, 19 de janeiro de 2016 11:41
  • Eu criaria uma Job que chama um pacote SSIS para fazer isso.

    Para chamar a Job via SP: 
    EXEC dbo.sp_start_job N'MinhaJob'

    terça-feira, 19 de janeiro de 2016 11:45
  • 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]


    terça-feira, 19 de janeiro de 2016 13:28
  • Bom dia,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente

    Marcos 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.

    sexta-feira, 22 de janeiro de 2016 13:27