using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
Du borde inte behöva SMO för att utföra frågor. Försök att använda SqlCommand-objektet istället. Ta bort dessa med hjälp av uttalanden. Använd den här koden för att köra frågan:
SqlConnection conn = new SqlConnection(sqlConnectionString);
SqlCommand cmd = new SqlCommand(script, conn);
cmd.ExecuteNonQuery();
Ta också bort projekthänvisningen till SMO. Obs:du vill rensa upp resurser ordentligt.
Uppdatering:
ADO.NET-biblioteken stöder inte nyckelordet 'GO' . Det verkar som att dina alternativ är:
- Parse skriptet. Ta bort "GO"-nyckelorden och dela upp skriptet i separata partier. Kör varje batch som sin egen SqlCommand.
- Skicka skriptet till SQLCMD i skalet (David Andres svar).
- Använd SMO som koden från blogginlägget.
I det här fallet tror jag faktiskt att SMO kan vara det bästa alternativet, men du måste spåra varför dll-filen inte hittades.