2011-12-15 18 views
2

いくつかのクエリを実行する前にANSI_NULLSとその他のデータベースオプションを設定する必要があります。だから私はコマンドテキストにANSI_NULLSを設定するとエラーが発生します

SqlCommand cmd = new SqlCommand(query_prefix + "SELECT UserID,FirstName,MiddleName,LastName FROM mydb.dbo.UserInfo where UserID=10277",con); 

として使用私のコード

const string query_prefix = "SET ANSI_NULLS ON \n GO \n SET ANSI_PADDING ON \n GO \n SET ANSI_WARNINGS ON \n GO \n SET CONCAT_NULL_YIELDS_NULL ON \n GO \n SET QUOTED_IDENTIFIER ON \n GO \n SET NUMERIC_ROUNDABORT OFF \n GO \n "; 

に私は上記のGO ON GOのSET ANSI_PADDING ONのSET ANSI_NULLSがエラーを与えていたので、 "N \" "GO近くに不適切な構文" を追加しました。管理スタジオでGOが改行されている場合は、間違った構文エラーが出ることはありません。だから私は "\ n"を追加しましたが、それでもエラーはスローされます。

コードからこれらのデータベースオプションを設定するにはどうすればよいですか?私は手続きを使うことができません。

答えて

3

GOはSSMSのバッチ区切りであり、SQLコマンドではないため、このようなクエリに含めることはできません。

3
  • オープン接続

サンプルコードをすることができ、同じ接続で別のSqlCommandオブジェクトとしてあなたのSELECT文を実行し、ExecuteNonQueryメソッド

  • でSET ANSI_NULLS ONとSET_ANSI_PADDING_ONを実行するSqlCommandオブジェクトを作成します。このSO postに見つかりました。環境に応じて、データベースレベルでこれらの設定のデフォルトを設定することもできます。

  • 関連する問題