Допустим, у меня есть такая база данных:
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, но это приводит к проблемам в функции импорта. Проблема возникает, когда вы экспортировали из двух или более баз данных, и теперь у вас есть потенциальные конфликты в первичном ключе для таблицы пользователей. Как вы справляетесь с этим? Я также использую потоковую передачу файлов в некоторых таблицах, поэтому у меня есть некоторые данные, которые нельзя легко вывести в текстовый формат.
Я также хотел бы сделать все это программно. Использование SQL Server 2008.