sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo puedo ejecutar un .sql desde C#?

using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;

No debería necesitar SMO para ejecutar consultas. Intente usar el objeto SqlCommand en su lugar. Elimine estas instrucciones de uso. Utilice este código para ejecutar la consulta:

 SqlConnection conn = new SqlConnection(sqlConnectionString);
 SqlCommand cmd = new SqlCommand(script, conn);
 cmd.ExecuteNonQuery();

Además, elimine la referencia del proyecto a SMO. Nota:deseará limpiar los recursos correctamente.

Actualización:

Las bibliotecas ADO.NET no admite la palabra clave 'GO' . Parece que tus opciones son:

  1. Analice el script. Elimine las palabras clave 'GO' y divida el script en lotes separados. Ejecute cada lote como su propio SqlCommand.
  2. Envíe el script a SQLCMD en el shell (respuesta de David Andres).
  3. Utilice SMO como el código de la publicación del blog.

En realidad, en este caso, creo que SMO puede ser la mejor opción, pero deberá rastrear por qué no se encontró el dll.