sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik een .sql vanuit C# uitvoeren?

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

U zou geen SMO nodig moeten hebben om query's uit te voeren. Probeer in plaats daarvan het SqlCommand-object te gebruiken. Verwijder deze met behulp van instructies. Gebruik deze code om de query uit te voeren:

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

Verwijder ook de projectverwijzing naar SMO. Opmerking:u wilt bronnen op de juiste manier opschonen.

Bijwerken:

De ADO.NET-bibliotheken ondersteunt het trefwoord 'GO' niet . Het lijkt erop dat uw opties zijn:

  1. Ontdek het script. Verwijder de 'GO'-sleutelwoorden en splits het script op in afzonderlijke batches. Voer elke batch uit als zijn eigen SqlCommand.
  2. Stuur het script naar SQLCMD in de shell (antwoord van David Andres).
  3. Gebruik SMO zoals de code uit de blogpost.

In dit geval denk ik eigenlijk dat SMO de beste optie is, maar je zult moeten achterhalen waarom de dll niet is gevonden.



  1. Manipuleer rijen met meerdere clausules in mysql

  2. Converteren tussen onlogisch opgemaakte datums (veranderen /slash/ naar -dash- )

  3. Wijzig het datumformaat voor de huidige sessie in SQL Server

  4. Hoe voer je SQL uit vanuit een bash-script?