次のようなデータベースがあるとします。
Users
-----
ID int PK Identity
Name vchar(max)
Sales
-----
UserID int FK
Description vchar(max)
そしていくつかのデータ:
Users
1, "Daniel"
2, "Barnie"
3, "Frank"
Sales
2, "New computer"
2, "Rubber duck"
3, "Cabbage"
この主キーにリンクする他のテーブルもいくつかあります。ここで、特定のユーザーのみをバックアップする必要があるという要件があります。たとえば、ユーザー 2 と 3 のデータとすべてのリンクされたデータのみをエクスポートしたいとします。
質問: 1) 部分的なデータのみを使用して .bak ファイルを作成する方法はありますか? 全体をバックアップするのではなく、選択したレコードだけをバックアップします。2) .bak ファイルが最善の方法ではない場合、他に何ができますか? csv ファイルまたは INSERT sql スクリプトを生成することを考えましたが、これらはインポート機能で問題を引き起こします。この問題は、2 つ以上のデータベースからエクスポートしたときに、users テーブルの主キーに競合が発生する可能性がある場合に発生します。これをどのように回避しますか?また、一部のテーブルでファイル ストリーミングを使用しているため、テキスト形式に簡単に取り出せないデータがあります。
また、これらすべてをプログラムで行いたいと考えています。SQL Server 2008 を使用しています。