У нас возникли проблемы с переносом больших файлов базы данных SQL Server из действующей системы в тестовую. Мы нашли решение для восстановления по частям. Потому что нам нужны только последние записи для тестирования нашей системы. Мы разделили таблицу по столбцу «id», который является первичным и идентифицирующим.
Казалось, что он работает с восстановлением 1 или 2 файлов по 10 файлам и с простым запросом «выбрать» и «вставить».
Но в приложении, которое мы используем Entity Framework (EF) для запроса «вставки» базы данных, возникла проблема. (Исключение: один из разделов индекса для идентификатора раздела таблицы «таблица» ... находится в файловой группе ». ... ", к которому невозможно получить доступ, потому что он отключен, восстанавливается или не функционирует. Это может ограничить результат запроса.)
После проверки сгенерированного запроса EF
sp_executesql 'insert into table.... select id from table where @@rowcount>0 and Id=scope_idetity()'
Я углубился в проблему и увидел, что функция «идентификации области видимости» требует восстановления дополнительных файлов.
Мой вопрос: есть ли другая конфигурация для решения этой проблемы или есть лучшее решение, подходящее для нашего сценария, в котором требуется передача большого файла SQL в тестовую систему, которой нужны только последние записи.
Это не очень хорошее решение, потому что записи резервной базы данных зависят от других независимых систем. Скриптовая база данных представляет собой сложное решение, для которого требуются идентификаторы, сгенерированные другими системами, которые являются идентификаторами GUID, а не увеличивающимся числом int.
Это, вероятно, больше по теме на Администраторы баз данных. Я думаю, ваш вопрос слишком широкий для Stack Overflow.





Идеальное решение - не полагаться на действующую систему для создания вашей тестовой системы. Имейте тестовую базу данных, которая написана сценариями, с контролем источника и заполнена сгенерированными данными, проблема решена.