SQL Server 2008
私が敢えて言うすべての正しい参照を使用して:
System.Data.SqlClient;
Microsoft.SqlServer.Management.Smo;
Microsoft.SqlServer.Management.Common;
Microsoft.SqlServer.Management.Sdk.Sfc;
すべてエラーなしでコンパイルされます。
デバッグを容易にするために、コードをほぼゼロまで削除しました。
サーバーへの接続は問題ありません。
次のコードを実行します。
SqlConnection connection = new SqlConnection(sqlConnectionString);
Server server = new Server(new ServerConnection(connection));
server.ConnectionContext.ExecuteNonQuery(sqlDBQuery);
文字列はどこsqlDBQuery
にありますか:USE [master] GO ALTER DATABASE [Cassiopeia] SET ANSI_NULL_DEFAULT OFF GO ALTER DATABASE [Cassiopeia] SET ANSI_NULLS OFF GO
しかし、「sqlDBQuery」が何であるかは関係ありません。私は常に同じエラーを受け取ります。
GOの近くの構文が正しくありません
。
私を見ると、ConnectionContext
BatchSeparator = "GO"と言っているので、SMOがこれを処理すると信じていました。
GOを削除すると、それは成功です...いわば、SMOが機能しない理由を本当に知る必要があります。
どこを見ても、「このようにsmoを使用すれば、元気です」とだけ表示されます。まあ...私にはうまくいきません。
参考のために、Jon Gallowayによるこの投稿を参照してください: http://weblogs.asp.net/jgalloway/archive/2006/11/07/Handling-_2200_GO_2200_-Separators-in-SQL-Scripts-2D00 -the-easy-way.aspx
よろしく