INDEX
方法1.bcpユーティリティーを使用する方法
bcpユーティリティーを利用してエクスポート、インポートをする方法です。
(1)bcpユーティリティーでエクスポート
c:\>bcp TestDB.dbo.users out c:\users.txt -c -S localhost -U sa -P password
(2)インポートするテーブルを作成します
※場合によっては、復元したいテーブルを空にします
(3)データをインポートします
c:\>bcp TestDB.dbo.users in c:\users.txt -c -S localhost -U sa -P password
次に紹介するSQLの方法と比べ、そのままインポートできることがbcpユーティリティーの魅力です。
方法2.SELECT INSERTを使用する方法
(1)インポートするテーブルを作成します
(2)SELECT INSERT でデータをコピーします
insert into users_bk select * from users_original
※この方法には大きな問題点があります。
列リストが使用されていて、IDENTITY_INSERT が ON のときに限り、テーブル ‘users_bk’ の ID 列に明示的な値を指定できます。
列のプロパティにおいて、IDENTITYの指定の(IDである)を「はい」にしていると、インポートすることができない。
「変更の保存が許可されていません。」とういエラーが出て、テーブルの構成を変更できないのだ。
ツール > オプション > デザイナー にある
「テーブルの再作成を必用とする変更を保存できないようにする」
のチェックを外せば構成を変更することができる。
『テーブルの再作成時にメタデータが失われ、データが直接失われる場合があります。・・・』ということがこの設定の存在理由です。
あまり意識しなくてもよさそうですが、テーブルの構成を変更しなくてはインポートできないのは大きな問題です。
方法1のbcpユーティリティーを使用する方法がおすすめです。