猫型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 テーブルの変更タイムアウト

エラー テーブルを修正できません。 タイムアウトの時間切れです。操作が完了する前にタイムアウト期間を過ぎたか、またはサーバが応答していません。 解決方法 SQL Server Management S …

sqlserver

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

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

sqlserver

SQLSERVER サービス起動用ユーザーを作成する

SQLサーバーのサービスを起動しているのは、デフォルトではおそらくAdministratorです。 ここに大きな落とし穴があります。 Administratroのパスワードを変更することはセキュリティ …

sqlserver

SQL Server Browser を起動する方法

SQL Server構成マネージャーより起動できるはずが、なぜか開始も停止もできない。 コントロール パネル > システムとセキュリティ > 管理ツール > サービス を見ると、SQL Server …

sqlserver

application log ってどこ?

SQLSERVERのメンテナンスプランを使用してバックアップを取得していたのですが、取得できていませんでした。 SQL Serverログには下記メッセージが表示されていました。 BACKUP fail …