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:
{
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).
2 replies on “Ejecutar sentencias T-SQL durante la instalación de aplicaciones .NET”
[...] Fuente: http://www.buayacorp.com/archivos/ejecutar-sentencias-t-sql-durante-la-instalacion-de-aplicaciones-n... [...]
recién estoy empezando a crear un instalador y nose donde tengo que colocar el script que arriba adjuntas, crees que me podrías ayudar?