А началось все с этого: «Msg 41385, Level 16, State 1, Procedure sp_cdc_enable_db, Line 31 [Batch Start Line 2] A database cannot be enabled for both Change Data Capture (CDC) and MEMORY_OPTIMIZED_DATA storage.»
В базе все таблицы в оптимизированные на использование памяти заменил на табличные переменные.
Попытался удалить группу, «The file ‘MOD’ cannot be removed because it is not empty».
Можно пытаться сделать файл пустым и тд и тп, но все будет безрезультатно, потому как читать нужно документацию, и вот что сказал майкрософт, » Once you create a memory-optimized filegroup, you can only remove it by dropping the database. SQL Server does not allow you to remove an In-Memory OLTP filegroup from the database even after you drop all memory-optimized tables.», в общем искоренить MEMORY_OPTIMIZED_DATA storage можно только одним способом дропнув БД.
В моем случае в базе присутствуют таблицы с ограничениями по внешним ключам, а так же таблицы содержащие null-ы при заданном значении по умолчанию для столбца, задействован полнотекстовый поиск.
Ну да ладно, приступим, воспользуемся SQL Server Management Studio (SSMS) и утилитой DTExecUI.exe
1) Создаем скрипт базы.






2) Правим полученный файла, удаляем файловую группу, ну и все это во временную БД, для сверки.


3) Импорт данных («Import data…», курсор на скрине не на том пункте), готовим пакет для импорта, указываем источник, назначение, выбираем таблицы, указываем на необходимость вставки идентификаторов, сохраняем пакет в файл, затем его подправим и отправим на выполнение.










Отключаем контроль ограничений, иначе будет плохо.


Вот так, плохо.

Меняем keepnulls на true, иначе нулы заменятся на значения по умолчанию.


И отправляем пакет на выполнение.


