Импорт в проект базы данных
Функцию импорта можно использовать для заполнения проекта новыми объектами из активной базы данных или файла DACPAC либо для обновления имеющихся объектов в проекте новым определением из скрипта. Следует отметить некоторые приведенные ниже различия в поведении между этими тремя действиями.
Меню "Импорт"
Подразделы этого раздела
Источник импорта: база данных или приложение уровня данных (*.dacpac)
Источник импорта: скрипт (*.sql)
Источник импорта: база данных или приложение уровня данных (*.dacpac)
Возможность импорта схемы из базы данных или файла DACPAC доступна только в том случае, если в проекте еще не определены никакие объекты схемы. Это не относится к журналам рефакторинга или скриптам, выполняемым до и после развертывания.
При импорте определения объектов записываются в файлы проекта с использованием параметров организации по умолчанию SSDT для новых объектов: новых файлов объектов верхнего уровня, иерархических потомков, определенных в том же файле в качестве родительского элемента, ограничений таблицы или столбца, определенных встроенным образом, где это возможно. Чтобы обеспечить более целенаправленную видимость и управление для каждого объекта, воспользуйтесь не импортом, а функцией «Сравнение схемы».
Если источник импорта содержит скрипты, выполняемые до и после развертывания, журналы рефакторинга или определения переменных SQLCMD, то они будут импортированы в проект. Если проект уже содержит любой из этих объектов, импортированные файлы будут добавлены в папку проекта Пропущенное при импорте.
Пропущенное при импорте
Источник импорта: скрипт (*.sql)
Все объекты из источника импорта, которые отсутствуют в проекте, будут добавлены, а все объекты в источнике импорта, которые присутствуют в проекте, перезапишут соответствующие определения в проекте.
Примечание
Известны две ошибки данного метода, которые будут исправлены в следующем выпуске:
- Если ограничения таблицы или столбца определены за пределами инструкции CREATE TABLE в определении таблицы проекта, то при импорте определение таблицы будет перезаписано, так что ограничение будет встроенным. Однако внешнее ограничение останется, в результате чего в проекте будут повторяющиеся ограничения.
- Главные ключи или ключи шифрования базы данных из скрипта-источника, уже имеющиеся в проекте, будут дублированы при импорте. Для сборки проекта удалите повторяющиеся элементы.
Процесс «Импорт из скрипта» не обрабатывает сценарии, выполняемые до или после развертывания, переменные SQLCMD и файлы журналов рефакторинга. Эти и другие неподдерживаемые конструкции, обнаруженные во время импорта, будут помещены в файл ScriptsIgnoredOnImport.sql в папке Скрипты проекта.
Импорт зашифрованных объектов
При импорте зашифрованных объектов в проект базы данных полный текст определения объекта не всегда может быть получен с сервера. Таким образом, поведение при импорте может быть различным при работе с данным классом объектов.
Если полный текст определения получить не удается, то в скрипт помещается верхний и нижний колонтитул объекта с фиктивным текстом. Такое поведение может возникнуть при импорте или сравнении схемы, когда источником является активная база данных или файл DACPAC, извлеченный из базы данных.
Скрипт с фиктивным текстом
Если доступно и может быть получено полное определение объекта, операция импорта или сравнения схемы поместит его в проект полностью. Это происходит при обновлении проекта из скрипта, файла DACPAC, построенного на основе проекта базы данных, или другого проекта базы данных.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по