none
Ejecutar Script SQL desde boton VB.net 2013 RRS feed

  • Pregunta

  • buenas yo tengo un sistema creado en VB.net 2013 con una DB en SQL 2012. tengo tiempo viendo como hacer lo siguiente:

    yo en el SQL server 2012 tengo una DB enterpriseadmindb y lo que quiero que el cliente desde un boton en el sistema se ejecute esta instruccion: 

    BACKUP DATABASE [EnterpriseAdmindb] TO  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Backup\Respaldo.bak' WITH NOFORMAT, NOINIT,  NAME = N'EnterpriseAdmindb-Completa Base de datos Copia de seguridad', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
    GO

    la cual la ejecuto desde SQL Managemen Studio, pero el cliente requiere que se ejecute desde la aplicacion. o con un procedimiento almacenado en la DB. 

    sin mas que agregar

    israel garcia.

    sábado, 4 de agosto de 2018 3:25

Respuestas

  • Pon esa sentencia en un String, y luego manda ejecutar el string usando un SqlCommand, usando el método ExecuteNonQuery. Más o menos es como te pongo a continuación, pero esto variará dependiendo de cómo estés haciendo las conexiones a base de datos.

    Dim sql as String = "BACKUP DATABASE [EnterpriseAdmindb] TO  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Backup\Respaldo.bak' WITH NOFORMAT, NOINIT,  NAME = N'EnterpriseAdmindb-Completa Base de datos Copia de seguridad', SKIP, NOREWIND, NOUNLOAD"
    
    Using cn as New SqlConnection(cadenaDeConexion)
        cn.Open()
        Dim cmd as New SqlCommand(sql, cn)
        cmd.ExecuteNonQUery()
    End Using

    Te he quitado de la sentencia el "Stats" ya que no vale para nada cuando la ejecutas desde un cliente en lugar de ejecutarla desde el SSMS (bueno, sí, podrías capturar los stats desde el evento InfoMessage del connection, pero no creo que quieras ir tan lejos). También he quitado el GO ya que solo sirve para el SSMS paro no es lícito en una sentencia.

    • Marcado como respuesta Pablo Rubio lunes, 6 de agosto de 2018 16:58
    sábado, 4 de agosto de 2018 6:08