Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como posso executar um .sql de C#?

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

Você não deve precisar do SMO para executar consultas. Tente usar o objeto SqlCommand em vez disso. Remova essas instruções using. Use este código para executar a consulta:
 SqlConnection conn = new SqlConnection(sqlConnectionString);
 SqlCommand cmd = new SqlCommand(script, conn);
 cmd.ExecuteNonQuery();

Além disso, remova a referência do projeto ao SMO. Nota:você desejará limpar os recursos corretamente.

Atualização:


As bibliotecas ADO.NET não suporta a palavra-chave 'GO' . Parece que suas opções são:
  1. Analise o script. Remova as palavras-chave 'GO' e divida o script em lotes separados. Execute cada lote como seu próprio SqlCommand.
  2. Envie o script para SQLCMD no shell (resposta de David Andres).
  3. Use SMO como o código da postagem do blog.

Na verdade, neste caso, acho que o SMO pode ser a melhor opção, mas você precisará rastrear por que a dll não foi encontrada.