Microsoft SQL Serverを使用して、運用データベースのサブセットをバックアップする方法はありますか?必要なのは、データベース構造と、いくつかの選択されたテーブルの非常に少量のトランザクションデータだけです。
このバックアップファイルを使用して、開発データベースを更新します。
Oracleの場合、これは次のPowershellスクリプトを使用して実現されていることがわかります。
userid="/ as sysdba"
compression=all
directory=TEST_DIR
flashback_time=systimestamp
dumpfile=XX.dmp
logfile=xx.log
schemas=XXXXX
query=SCHEMA.TABLE:"where <condition>
exclude=TABLE:"IN (x)"
SQL Server Management Studio(SSMS)では、データベースの構造コンポーネント(テーブルとビュー、ユーザー、関数、プロシージャ)を作成するスクリプトを生成できます。開発用DBに返されたスクリプトを使用できます。
これを実行するには、SSMSでデータベースを右クリックし、[タスク] => [スクリプトの生成...]を選択します。これにより、プロセスをステップごとに案内するウィザードが開き、コピーするものを選択できます。
テーブルの場合、設定できる詳細オプションがあります。これにより、インデックスとトリガーを含め、データをテーブルに含めることができます。ただし、これにより、選択した量だけではなく、テーブルからのデータallが得られます。
all選択したテーブルのデータが必要で、残りのデータは必要ない場合は、これを2回パスすることで2つのスクリプトを生成できます。
最初のパスでは、すべてを選択し、「存在する場合はドロップする」としてスクリプトを記述し(既に存在するものを置き換えたい場合)、notデータを含め、それを単一のスクリプトとして保存します。
2番目のパスでは、データをコピーするテーブルのみを選択します。 「存在する場合は削除する」オプションを選択しないでください。およびdoデータを含め、これを2番目の単一スクリプトとして保存します(または、必要に応じて、テーブルごとに1つのスクリプトとして保存します)。
注:これにより、実際のバックアップではなく、データベースで実行するスクリプトが作成されます。