Anuncia aquí

Ejecutar sentencias T-SQL durante la instalación de aplicaciones .NET

Anteriormente usaba un método algo "brusco" para conseguir crear la base de datos y el esquema correspondiente durante la instalación de una aplicación. Sin embargo, hace poco acabo de enterarme a través de un blog de una forma más elegante de hacer esto para base de datos SQL Server; lo único que se necesita es crear un instalador personalizado y hacer uso de los ensamblados que provee SQL Server Management Objects:

csharp:
public class SqlScriptInstaller : Installer
{
    private readonly string sqlScript_;

    public SqlScriptInstaller(string sqlScript)
    {
        this.sqlScript_ = sqlScript;
    }

    public SqlScriptInstaller(Stream sqlStream)
    {
        using (StreamReader sr = new StreamReader(sqlStream))
        {
            this.sqlScript_ = sr.ReadToEnd();
        }
    }

    public override void Install(IDictionary stateSaver)
    {
        string connectionString = this.Context.Parameters["ConnectionString"];

        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            ServerConnection serverConn = new ServerConnection(conn);
            Server sqlServer = new Server(serverConn);
            sqlServer.ConnectionContext.ExecuteNonQuery(this.sqlScript_);
        }

        base.Install(stateSaver);
    }
}

El script que acompañe a la aplicación puede incluir múltiples sentencias Transact-SQL (incluyendo la sentencia GO).

Esta entrada fue publicada en .NET y clasificada en , , ,

Un Trackback

  1. [...] Fuente: http://www.buayacorp.com/archivos/ejecutar-sentencias-t-sql-durante-la-instalacion-de-aplicaciones-n... [...]

Publicar un Comentario

Tu email nunca será publicado o compartido. Los campos requeridos están marcados con un *

*
*

Puedes usar estas etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>