sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kan jeg udføre en .sql fra C#?

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

Du behøver ikke SMO for at udføre forespørgsler. Prøv i stedet at bruge SqlCommand-objektet. Fjern disse ved hjælp af udsagn. Brug denne kode til at udføre forespørgslen:

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

Fjern også projekthenvisningen til SMO. Bemærk:du vil gerne rydde op i ressourcer ordentligt.

Opdatering:

ADO.NET-bibliotekerne understøtter ikke søgeordet 'GO' . Det ser ud til, at dine muligheder er:

  1. Parse scriptet. Fjern 'GO'-nøgleordene og opdel scriptet i separate batches. Udfør hver batch som sin egen SqlCommand.
  2. Send scriptet til SQLCMD i shellen (David Andres' svar).
  3. Brug SMO som koden fra blogindlægget.

Faktisk, i dette tilfælde, tror jeg, at SMO kan være den bedste løsning, men du bliver nødt til at spore, hvorfor dll'en ikke blev fundet.



  1. Skalering af decimalværdi resulterede i datatrunkering via ODBC

  2. Hvordan bruger man orchestral/tenanti i Laravel 5 til at bygge en multi lejer applikation med flere databaser?

  3. Heroku logs siger Intet modul med navnet 'urlparse', når jeg bruger import urlparse

  4. hvordan kan jeg oprette ny XML-fil fra eksisterende database i PostgreSQL-databasen ved hjælp af java