SqlBulkCopy クラスを使用して、リソースから .NET Framework 2. 0 のデータ テーブルにデータをコピーすると、エラー メッセージ:"System.InvalidOperationException: を変換先テーブルの列の照合順序情報を取得できませんでした"

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:944389
現象
Microsoft .NET Framework 2. 0 アプリケーションでは、 SqlBulkCopy クラスを使用する、System.Data.DataTable から Microsoft SQL Server のテーブルにデータをコピーします。 テーブル名には、ドット文字 (.) が含まれる場合、次のエラー メッセージが表示されます。
System.InvalidOperationException が未処理
メッセージ ="を変換先テーブルの列の照合順序情報を取得できませんでした。 テーブルが現在のデータベースはデータベース名を使用して名前を修飾する必要がありますにない場合は (例: [mydb]..[mytable](例: [mydb]..[mytable])、一時テーブル (例: #mytable は tempdb として指定する... にも適用されます#mytable):"
Source="System.Data"
原因
この問題は、System.Data.dll の問題によって発生ファイル。
回避策
この問題を回避をドットを避けるための文字 (.) テーブルの名前。

テーブル名でドット文字 (.) を使用するがある場合、は、ドット文字 (.) を使用します。 SQL 名前付け規則の一部として。 たとえば、次のようなテーブル名を使用します。
server.database.schema: tablename
状況
マイクロソフトとして認識していますこの問題を記載されているいるマイクロソフト製品の問題。
詳細

動作を再現する手順

  1. Northwind データベース内の次の SQL ステートメントを実行:
    select * into [test.33] where 1 = 0--Create a table named [test.33].
  2. Visual C# アプリケーションを作成し、次のコードを実行:
    static void Main(string[] args)        {            SqlConnection con = new SqlConnection("Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=.");            con.Open();            SqlConnection dst = new SqlConnection("Integrated Security=SSPI;Initial Catalog=Northwind;Data Source=.");            dst.Open();            SqlCommand com = new SqlCommand("select * from customers", con);            SqlDataReader dr = com.ExecuteReader();            SqlBulkCopy sbc = new SqlBulkCopy(dst);            sbc.DestinationTableName = "Northwind.dbo.[Test.33]";            sbc.WriteToServer(dr); // The failure occurs here.            dst.Close();            con.Close();        }

スタック情報を呼び出します

at System.Data.SqlClient.SqlBulkCopy.AnalyzeTargetAndCreateUpdateBulkCommand(BulkCopySimpleResultSet internalResults)       at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternal()       at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServer(Int32 columnCount)       at System.Data.SqlClient.SqlBulkCopy.WriteToServer(IDataReader reader)

警告: この記事は自動翻訳されています

プロパティ

文書番号:944389 - 最終更新日: 01/03/2008 16:29:00 - リビジョン: 2.1

Microsoft .NET Framework 2.0, Microsoft .NET Framework 3.0, Microsoft .NET Framework 3.5

  • kbtshoot kbprb kbexpertiseadvanced kbmt KB944389 KbMtja
フィードバック