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:
- Analise o script. Remova as palavras-chave 'GO' e divida o script em lotes separados. Execute cada lote como seu próprio SqlCommand.
- Envie o script para SQLCMD no shell (resposta de David Andres).
- 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.