トップ回答者
SQLServer2000からSQLServer2012へのデータ移行

質問
-
現在、OS:WindowsServer2012のサーバーにSQLServer2012 StandardEditonSP2をインストールし、
MicrosoftSQLServer ManagementStudio(Ver.11.0.5058.0)を利用して
SQLServer2000のDBからSQLServer2012のDBへ以下の手順でデータ移行を行っています。
1)ManagementStudioを起動し、SQLServer2000のDB①とSQLServer2012のDB②を接続する。
2)①のDBを選択、右クリック→タスク→データのエクスポートを選択する。
3)SQLServerインポートおよびエクスポートウィザードを使用し、データを移行する。
データソース:Microsoft OLE DB Provider for SQL Server
認証:SQLServer認証
この結果、エラーは検出されなかったのですが、以下のような警告が出ました。
「* 警告 0x802092a7: データ フロー タスク 37: 長さ 200 のデータ フロー列 "設定値" から、
長さ 128 のデータベース列 "設定値" にデータを挿入することにより、切り捨てが行われる可能性があります。
(SQL Server インポートおよびエクスポート ウィザード)」原因が判明出来ずに困っています。
又、対応方法も合わせて調査していますが、見つかりません。
もしご存知の方がいらっしゃったら教えて頂けないでしょうか。
どうぞよろしくお願いします。
回答
-
原因はわかりませんが
エラー内容拝見する限りではテーブル定義で両者の列の定義が違っている
SQLServer 2000側 … 長さ200のvarchar?
SQLServer 2012側 … 長さ128のvarchar?
ようなので、SQLServer2012側の該当列を長さ200にしてデータインポートを
やり直してみたらいかがでしょうか。
また、書かれているような方法だと、該当のテーブルがないときはテーブルが勝手に作られると思いますが
できたものにキーとか制約とかは作られていないと思います。
単にデータがあれば良いよ、ということなら良いと思いますが
アプリケーションで使うDBの移行ということだと問題があるように思います。
私の場合は、テーブルは別の方法で作っておいて、それからデータインポートしています。- 回答としてマーク 星 睦美 2015年5月20日 4:34
すべての返信
-
原因はわかりませんが
エラー内容拝見する限りではテーブル定義で両者の列の定義が違っている
SQLServer 2000側 … 長さ200のvarchar?
SQLServer 2012側 … 長さ128のvarchar?
ようなので、SQLServer2012側の該当列を長さ200にしてデータインポートを
やり直してみたらいかがでしょうか。
また、書かれているような方法だと、該当のテーブルがないときはテーブルが勝手に作られると思いますが
できたものにキーとか制約とかは作られていないと思います。
単にデータがあれば良いよ、ということなら良いと思いますが
アプリケーションで使うDBの移行ということだと問題があるように思います。
私の場合は、テーブルは別の方法で作っておいて、それからデータインポートしています。- 回答としてマーク 星 睦美 2015年5月20日 4:34