[FIX] DB2 サブスクライバへのレプリケーションで tinyint 型が誤ってマップ

この記事は、以前は次の ID で公開されていました: JP295668
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
SQL Server 2000 では、データ変換サービス (DTS) パッケージを使用してパブリッシャでデータを変換してから、データをサブスクライバに複製できます。パブリッシュされたテーブルが tinyint データ型の列を持ち、サブスクライバが DB2 (異種サブスクライバ) の場合、tinyint 型の列がサブスクライバに誤ってマップされます。

レプリケーションの設定で、DTS を使用してパブリッシュされたデータを変換していない場合は、このデータ型に関する問題は発生しません。
原因
静的なデータ型マッピングは、データ型名および有効桁数による照合で使用されます (データ型名は同じでなければなりません。また、照合先の有効桁数は照合元の有効桁数と同じまたはそれ以上でなければなりません)。静的マッピング (名前および有効桁数に基づく) の厳密な一致が検出されない場合は、変換先サーバーはマッピングを取得するためのクエリを動的に受け取ります。

(変換可能なサブスクライバの場合) パブリッシュ データ変換ウィザードを使用すると、有効桁数の不一致のために静的マッピングが失敗し、変換先サーバー (DB2) に有効桁数の問い合わせが行われません。これが原因となり、レプリケーションが失敗します。
解決方法
この問題を解決するために、SQL Server 2000 の最新の Service Pack の適用をお願いいたします。
最新の SQL Server サービスパックのダウンロードおよびインストールについて詳しくは以下をご覧下さい。

http://www.microsoft.com/japan/sql/download/default.asp (日本語版)
http://www.microsoft.com/sql/downloads/default.htm(英語版)
回避策
この問題を回避するには、パブリッシュ データ変換ウィザードで変換先テーブルのスキーマを修正します。
状況
弊社では、これを Microsoft SQL Server version 2000 の問題として確認しています。
この問題は、Microsoft SQL Server version 2000 Service Pack 1 で修正されています。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 295668 (最終更新日 2001-06-13) をもとに作成したものです。

プロパティ

文書番号:295668 - 最終更新日: 01/16/2015 22:24:24 - リビジョン: 2.1

Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbbug kbfix kbsqlserv2000bug kbsqlserv2000sp1fix KB295668
フィードバック