テーブルレベルのバックアップ


回答:


89

BACKUP DATABASEもちろん、問題のテーブルが独自のテーブルに割り当てられていない限り、コマンドを使用して単一のテーブルをバックアップすることはできませんFILEGROUP

あなたが提案したようにあなたができることは、CSVファイルにテーブルデータをエクスポートすることです。テーブルの定義を取得するために、スクリプトを「スクリプト化」できCREATE TABLEます。

これは、SQL Server Management Studio内で次の方法で実行できます。

データベースを右クリック>タスク>スクリプトを生成

次に、スクリプトを実行するテーブルを選択し、制約やインデックスなどの関連オブジェクトを含めることもできます。

得るためにはDATA、単に一緒にschema、あなたが選択するために持っているAdvancedセットスクリプト作成オプション]タブで、とにGENERALセクション設定Types of data to scriptの選択をSchema and Data

これがお役に立てば幸いですが、さらにサポートが必要な場合は、直接お気軽にご連絡ください。


「データベース公開ウィザード」は、私が概説したステップを自動化します。
John Sansom

25
ジョン、スキーマだけでDATAを取得するには、Advanced[スクリプトオプションの設定]タブで選択する必要があり、Types of data to script[ 一般]セクションで[選択]を設定することを忘れないでくださいSchema and Data。私が初めてそれをしたとき、それは明らかではありませんでした。
Alex C

アレックスのヒントは非常に重要です。また、SQL Serverのメニューを使用する代わりに、これをスクリプト化する方法はありますか?
12

1
PowerShellとSMOを組み合わせて使用​​すると、これを実現できるはずです。Phil Factorのこの記事をガイドとして参照してください。simple
John Sansom

@AlexCありがとうございます!頭痛を省いてくれた:)
Simon Whitehead

55

私が使用しています一括コピーユーティリティをテーブル・レベルのバックアップを実現するために

輸出する:

bcp.exe "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E

インポートするには:

bcp.exe [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

ご覧のとおり、任意のクエリに基づいてエクスポートできるため、これを使用して増分バックアップを実行することもできます。さらに、SSMSを使用するここで説明した他のメソッドとは異なり、スクリプトを使用できます。


1
頭を上げただけです。選択クエリの代わりに名前を使用してテーブルをコピーするだけの場合は、スクリプトを変更して、QUERYOUTの代わりにOUTを使用します。
Valamas 2015年

45

必要な手順は次のとおりです。ステップ5は、データが必要な場合に重要です。ステップ2では、個々のテーブルを選択できます。

スタックの編集のバージョンはかなり読みにくいです...ここにフルサイズの画像がありますますhttp://i.imgur.com/y6ZCL.jpg

ジョン・サンソムの答えからのステップはここにあります


@Alex Cを使用していたSSMSは何ですか?私のSSMS2005では、私のウィザードはあなたのものとは異なります。
KirdApe 2015

申し訳ありません。これに答えてから何年も経ちました。おそらく2008を使用していたと思います。ここでウィザードを確認したところ、高度なクリックは不要ですが、代わりにフレーム5(上記)のリスト全体がウィザードページの1つとして表示されます。さらに、STRUCTUREおよびDATAオプションは、それぞれ個別にTRUE / FALSEオプションに分割されました。他に何かお手伝いできることがありましたらお知らせください。
Alex C

19

以下のクエリを実行して、既存のテーブルのバックアップを作成し、データとともに古いテーブルの既存の構造を持つ新しいテーブルを作成できます。

select * into newtablename from oldtablename

テーブル構造のみをコピーするには、以下のクエリを使用します。

select * into newtablename from oldtablename where 1 = 2


4

MySQLのようなものを探しているなら DUMP、朗報です。SQLServer 2008 Management Studioがその機能を追加しました。

SSMSで問題のDBを右クリックし、[ タスク]> [スクリプトの生成]を選択します。次に、オプションウィザードの2ページ目で、スクリプトを作成するデータも選択することを確認しDUMPます。これにより、ファイルに相当する量が生成されます。



2

Microsoftの無料のデータベース公開ウィザードを使用して、SQLスクリプト(CREATE TABLEおよびINSERT INTO)でテキストファイルを生成できます。

このようなファイルを1つのテーブルに作成し、SQLスクリプトを実行するだけで、データを含む完全なテーブルを「復元」できます。


+1 SQLスクリプトに慣れているすべての人にとって、これはあなたが探しているオプションです。個々のテーブルを選択するには、[選択したデータベースのすべてのオブジェクトをスクリプト化する]チェックボックスをオフにします。スクリーンショット:products.secureserver.net/products/hosting/...
レペ

2

ここで説明する問題と一致するかどうかはわかりません。テーブルの増分バックアップを取る必要がありました!(新しく挿入されたデータのみをコピーする必要があります)。私はDTSパッケージを設計するために使用しました。

  1. 「ステータス」列に基づいて新しいレコードをフェッチし、データを宛先に転送しました。(「データ変換タスク」を通じて)

  2. 次に、「ステータス」列を更新しました。(「SQLタスクの実行」を通じて)

「ワークフロー」を適切に修正する必要がありました。


2

SQL Serverインポートおよびエクスポートウィザードを使用します。

  1. ssms
  2. データベースエンジンを開く
  3. 代替 エクスポートするテーブルを含むデータベースをクリックします
  4. 「タスク」を選択します
  5. 「データのエクスポート...」を選択します
  6. ウィザードに従ってください

1

すべての復旧モデルでは、SQL Serverデータベースの全体または一部、またはデータベースの個々のファイルまたはファイルグループをバックアップできます。テーブルレベルのバックアップは作成できません

From:バックアップの概要(SQL Server)


0

SQL Serverはテーブルバックアップをサポートしていないため、おそらく2つのオプションがあります。どちらもテーブル作成のスクリプトから始まります。次に、多くの挿入ステートメントを生成する[スクリプトテーブル-挿入]オプションを使用するか、統合サービス(2000のDTS)などを使用して、データをCSVなどとしてエクスポートできます。



0

誰かが誤ってテーブルから行を削除した後にテーブルを復元できるようにしたい場合は、データベースのスナップショットを確認することができます。スナップショットから非常に簡単に(または行のサブセット)テーブルを復元できます。http://msdn.microsoft.com/en-us/library/ms175158.aspxを参照してください


0

SqlTableZipという名前の無料アプリで作業を完了できます。基本的に、あなたが書くあらゆる(もちろんすることができ、[テーブルから選択*])クエリをし、アプリは、後で復元することができ、すべてのデータを持つ圧縮ファイルを作成します。

リンク:http : //www.doccolabs.com/products_sqltablezip.html


0

Handy Backupは、MSSQL 2005/2008を含むMS SQL Serverから自動的にダンプファイルを作成します。これらのダンプはテーブルレベルのバイナリファイルで、特定のデータベースコンテンツの正確なコピーが含まれています。

Handy Backupで簡単なダンプを作成するには、次の手順に従ってください。

  1. Handy Backupをインストールして、新しいバックアップタスクを作成します。
  2. ステップ2で「MSSQL」をデータソースとして選択します。新しいウィンドウで、バックアップするデータベースをマークします。
  3. バックアップの保存先をさまざまな場所から選択します。
  4. ステップ4で、「完全」バックアップオプションを選択します。必要に応じてタイムスタンプを設定します。
  5. 結果のダンプファイルを圧縮または暗号化する必要がない限り、手順5をスキップします。
  6. ステップ6で、定期的にダンプを作成するようにタスクのスケジュールを設定します(または手動でタスクを実行します)。
  7. もう一度、ステップ7をスキップして、ステップ8でタスクに名前を付けます。これでタスクは完了です!

名前の前のアイコンをクリックして新しいタスクを実行するか、スケジュールされた時間まで待ちます。Handy Backupはデータベースのダンプを自動的に作成します。次に、バックアップ先を開きます。MS SQLバックアップを含むフォルダー(またはいくつかのフォルダー)が見つかります。このようなフォルダーには、いくつかのバイナリテーブルと単一のZIPに圧縮された設定で構成されるテーブルレベルのダンプファイルが含まれます。

その他のデータベース

Handy Backupは、MySQL、MariaDB、PostgreSQL、Oracle、IBM DB2、Lotus Notes、およびODBCドライバーを備えた一般的なSQLデータベースのダンプを保存できます。これらのデータベースの中には、DBMSとHandy Backupの間の接続を確立するために追加の手順を必要とするものがあります。

上記のツールは、多くの場合、SQLデータベースをテーブルレベルのSQLコマンドシーケンスとしてダンプし、これらのファイルを手動で変更できるようにします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.