回答:
バックアップの種類は、SQL Server復旧モデルに依存しています。すべての復旧モデルを使用すると、SQL Serverデータベース全体または一部、またはデータベースの個々のファイルまたはファイルグループをバックアップできます。テーブルレベルのバックアップは作成できません。そのようなオプションはありません。しかし、これには回避策があります
SQL ServerでSQL Serverテーブルのバックアップが可能です。SQL SQL Serverでテーブルをバックアップするさまざまな代替方法があります
ここでは、あなたが知っているかもしれない最初の休憩だけを説明しています
方法1 – BCPを使用したSQLテーブルのバックアップ(一括コピープログラム)
SQL Server AdventureWorksにある「Person.Contact」という名前のSQLテーブルをバックアップするには、次のスクリプトを実行する必要があります。
-- SQL Table Backup
-- Developed by DBATAG, www.DBATAG.com
DECLARE @table VARCHAR(128),
@file VARCHAR(255),
@cmd VARCHAR(512)
SET @table = 'AdventureWorks.Person.Contact' -- Table Name which you want to backup
SET @file = 'C:\MSSQL\Backup\' + @table + '_' + CONVERT(CHAR(8), GETDATE(), 112) -- Replace C:\MSSQL\Backup\ to destination dir where you want to place table data backup
+ '.dat'
SET @cmd = 'bcp ' + @table + ' out ' + @file + ' -n -T '
EXEC master..xp_cmdshell @cmd
出力
注意 -
または、コマンドプロンプトからBCPを実行し、コマンドプロンプトで次のコマンドを入力することもできます。どちらの操作も同じアクティビティを実行しますが、コマンドプロンプトとタイプを開くときの保存タイプとして上記の方法が好きです。
bcp AdventureWorks.Person.Contact out C:\MSSQL\Backup\AdventureWorks.Person.Contact_20120222.dat -n -T
方法1:
テーブル内のデータと、同じデータベースおよびサーバー内でローカルに使用されるデータのみに関心がある場合は、以下のクエリを使用して、選択したテーブルのバックアップを取ることができます。
SELECT * INTO newtable1
FROM originalTable1
---表2の場合
SELECT * INTO newtable2
FROM originalTable2
など... n個のテーブル
このステートメントは、newtable1、newtable1 ..というテーブルを作成します。したがって、事前にテーブルを作成する必要はありません。
注*この方法はバックアップを非常に高速に実行しますが、主な欠点は、テーブルのキー、インデックス、および制約を引き継がないことと、バックアップがファイルの外部ではなくデータベース内に格納されることです。
方法2:
災害復旧ソリューションまたはデータ損失防止のためにテーブルを他のサーバーにバックアップする場合は、タスクの「スクリプトを生成」オプションを使用してテーブルをスクリプト化できます。
まず、バックアップするテーブルを含むデータベースを右クリックして、[タスク]-> [スクリプトの生成]を選択します。
テーブルをバックアップする必要があるリストからデータベースを選択します
表示される次の画面は、スクリプトオプションです。
[テーブル/表示オプション]が表示されるまで、スクリプトオプションを下にスクロールします。制約、スクリプトデータ、外部キー、主キー、トリガー、一意キーを確認してください。(または、もちろん必要なものを選択できます)。[次へ]を選択すると、[オブジェクトタイプの選択]画面が表示されます。
テーブルを選択して、次にヒットします。最後に、バックアップするテーブルを選択して、次にヒットします
方法3:
テーブルのバックアップにもbcpユーティリティを使用できます。
特定のテーブルを.bak
ファイルにバックアップすることはできません。csvにエクスポートしたり、スクリプトを作成したり、使用したりできます。bcp
、ファイルに配置するます。
特定のテーブルをバックアップする場合(およびそれらは常に同じである場合)にできることは、それらを別のテーブルに移動することです file group
ファイルグループにそのファイルグループをバックアップすることです。
ファイルとファイルグループのバックアップを参照してくださいドキュメントについては、「。
たとえば、T-SQLを使用して特定のファイルまたはファイルグループをバックアップする場合は、(リンクから)を使用できます
--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
FILEGROUP = 'SalesGroup1',
FILEGROUP = 'SalesGroup2'
TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck';
GO
そして
--Backup the files in the SalesGroup1 secondary filegroup.
BACKUP DATABASE Sales
FILE = 'SGrp1Fi2',
FILE = 'SGrp2Fi2'
TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck';
GO
KASQLDBAの応答から方法1を基に作成:
別のデータベースを作成して、テーブルのバックアップコピーを保持します。元のテーブルから選択して代替データベースにコピーするように、KASQLDBAが提供するクエリを変更します。
SELECT * INTO MyNewDatabase.dbo.newtable1
FROM OriginalDatabase.dbo.originalTable1
--- For table 2
SELECT * INTO MyNewDatabase.dbo.newtable2
FROM OriginalDatabase.dbo.originalTable2
新しいデータベースにテーブルをドロップするスクリプトを作成し、必要なすべてのテーブルに対してselect intoコマンドを実行できます。インデックスやその他のオブジェクトを利用できるようにしたい場合は、新しいデータベースでそれらを構築し、それらを再投入する前にテーブルを切り捨てることができます。切り捨てを希望する場合は、select intoの代わりにinsertステートメントを使用する必要があります。
このオプションは、.BAKファイルを作成する方法を提供します。新しいデータベースにテーブルを追加した後、単にデータベースのバックアップコマンドを実行します。
SSMSの一括エクスポート機能を使用するには、こちら記載されている最良かつ最も簡単な方法を示します。
SQL Serverのインポートおよびエクスポートウィザード: SQL Serverインポートおよびエクスポートウィザードは、SQL Server Integration Services(SSIS)パッケージへのグラフィカルユーザーインターフェイスを提供します。作成したパッケージは、スケジュールに従って実行するために自動化できます。SQL Serverデータツール(SSDT)を使用して、さらに構成および変更できます。
開始するには、インポートおよびエクスポートウィザードを開き、データベースを右クリックして、[タスク]サブメニュー-> [データのエクスポート]コマンドを選択します。
別の方法は、script / sprocを使用することです:DumpDataFromTable.sql from:https : //github.com/Zindur/MSSQL-DumpTable/tree/master/Scripts
EXECUTE [dbo].[DumpDataFromTable] @SchemaName = 'dbo', @TableName = 'Table', @PathOut = 'c:\temp\Scripts'
渡す必要があります:スキーマ名とテーブル名、作成されたスクリプトが保存される出力パス(フォルダーは既に作成/存在している必要があり、sqlにはsprocのコメントを参照してください)。
必要に応じて、テーブルに条件を追加できます(現時点では、フィルターはANDで開始する必要があります)