猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

SQLServer

SQLServer テーブル単位のバックアップと復元

投稿日:

方法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である)を「はい」にしていると、インポートすることができない。

「変更の保存が許可されていません。」とういエラーが出て、テーブルの構成を変更できないのだ。

sqlserver001

ツール > オプション > デザイナー にある
「テーブルの再作成を必用とする変更を保存できないようにする」
のチェックを外せば構成を変更することができる。

sqlserver002

『テーブルの再作成時にメタデータが失われ、データが直接失われる場合があります。・・・』ということがこの設定の存在理由です。
あまり意識しなくてもよさそうですが、テーブルの構成を変更しなくてはインポートできないのは大きな問題です。
方法1のbcpユーティリティーを使用する方法がおすすめです。

Gooleアドセンス用336

Gooleアドセンス用336

-SQLServer
-

執筆者:

関連記事

sqlserver

SQLSERVER saでログインできるようにする

私はsaも設定しておくべきだと思います。 そこでsaログインするための確認ポイントです。 INDEX1 ログインを有効にする2 サーバー認証の設定3 名前付きパイプ ログインを有効にする Manage …

sqlserver

SQLSERVER インストール後にDataをDドライブ(別ドライブへ)移動する方法

通常OSはCドライブ、データはDドライブなどの別ドライブを使用します。 SQLSERVERではデータの肥大化が起こりうる実データファイル(mdfやldf)をCドライブ以外に変更したい場面は多いはずです …

sqlserver

bcp ユーティリティで、「ホストのデータファイルが開けません。」

bcp ユーティリティを使用して、テーブルをエクスポートしようと思ったら、以下のエラーがでてしまった。 C:\>bcp TestDB.dbo.users out c:\users.txt -c …

sqlserver

テーブル変更やインデックス追加時にSELECTできるのか

INDEX1 テーブルの変更は運用に影響するのか?2 テーブルの変更3 インデックスの追加 テーブルの変更は運用に影響するのか? 運用中のテーブルを変更しないといけない場合は多々あります。 運用中のテ …

sqlserver

SQLSERVERのトランザクションログの切り捨て・圧縮

トランザクションログはデータの登録・更新記録です。 INDEX1 復旧モデル2 切り捨て3 圧縮 復旧モデル トランザクションログを扱うには、トランザクションログがどのように使用されるかを知る必要があ …