Поделиться через


Практическое руководство. Импорт объектов базы данных из скрипта

В дополнение к импорту схемы базы данных из имеющейся базы данных, можно также импортировать объекты базы данных из одного или нескольких имеющихся скриптов. Данный подход можно использовать, например, для импорта имеющегося определения базы данных, созданного с использованием другого средства стороннего производителя, в проект базы данных. Выполняется анализ заданного вами скрипта, идентифицируются инструкции, создающие объекты базы данных, и импортируются в проект базы данных. Импортировать скрипты можно с помощью мастера импорта файла скрипта SQL или команды автоматизации из командного окна.

Если какое-либо определение объекта содержит ошибку, этот объект пропускается. Если ошибка связана с типом определения, инструкция помещается в файл ScriptsIgnoredOnImport.sql в проекте базы данных. Если тип объекта действителен, но определение этого объекта содержит ошибку, например, определяется представление со ссылкой на несуществующую таблицу, в окно Список ошибок выводится сообщение об ошибке.

Не импортированные инструкции помещаются в решении в файл ScriptsIgnoredOnImport.sql.

Импорт описаний объектов базы данных

Использование мастера импорта файла скрипта SQL

  1. В меню Проект выберите команду Импортировать скрипт.

    Появится мастер импорта файла скрипта SQL.

    Примечание

    Можно также щелкнуть правой кнопкой мыши проект базы данных в обозревателе решений или представлении схемы и выбрать команду Импортировать скрипт.

  2. Прочитав вводную страницу мастера, нажмите кнопку Далее для перехода на страницу Выбор файла.

  3. При необходимости импортировать несколько скриптов перейдите к шагу 7.

  4. Щелкните Отдельный файл.

  5. В поле Имя файла введите, включая путь, имя файла скрипта, который требуется импортировать. Для поиска этого файла можно также нажать кнопку Обзор.

  6. Перейдите к шагу 11.

  7. Щелкните Несколько файлов.

  8. Нажмите кнопку Обзор и перейдите к папке, которая содержит папку со скриптами для импорта.

    Важно!

    Выбрать нужно папку, которая содержит скрипт для импорта, а не сами скрипты.

  9. Щелкните Выбрать папку.

  10. В списке файлов и папок установите флажки, соответствующие скриптам или вложенным папкам, содержащим скрипты, которые необходимо импортировать.

  11. Нажмите кнопку Далее.

  12. Если требуется, чтобы импортируемые объекты заменили одноименные и однотипные объекты в проекте базы данных, установите флажок Переписать объекты, уже существующие в проекте.

  13. Если расширенные свойства импортировать не нужно, снимите флажок Импортировать расширенные свойства.

  14. При необходимости импортировать разрешения установите флажок Импортировать разрешения.

  15. Если необходимо импортировать разрешения и добавить их в режим проекта, нужно также установить флажок Добавить импортированные разрешения в скрипт модели проекта.

    Примечание

    Если импортировать разрешения и добавить их в модель, количество времени, необходимое для открытия проекта базы данных может существенно возрасти.

  16. В Кодировка выберите кодировку, в которой создан файл скрипта.

  17. Нажмите кнопку Finish, чтобы импортировать определения объекта из заданного скрипта.

    При анализе скрипта и добавлении определений объектов в проект базы данных будет отображаться страница с индикатором хода выполнения. При импорте определений базы данных из скрипта создается файл журнала. Файлы журнала хранятся во вложенной папке "Журналы импорта сценариев" в папке проекта.

    Примечание

    Исходный фал не изменяется и открывается в режиме только для чтения с общим доступом.

Использование модели автоматизации Visual Studio

  1. Создайте или откройте проект базы данных.

    Дополнительные сведения см. в разделе Практическое руководство. Создание пустых проектов базы данных и сервера или Практическое руководство. Открытие проекта базы данных или сервера.

  2. Откройте меню Вид и выберите последовательно пункты Другие окна и Окно команд.

  3. В командном окне введите следующую команду:

    Project.ImportScript /FileName "MyScript.sql"
    

    Замените MyScript.sql именем файла импортируемого скрипта.

    Примечание

    Можно указать дополнительные параметры команды, управляющей операцией импорта.Дополнительные сведения см. в разделе Справочник по командам автоматизации функций работы с базами данных в Visual Studio.Если не указать имя файла, отобразится мастер импорта баз данных.

    Объекты и параметры импортируются из указанного скрипта в проект, выбранный в обозревателе решений при выполнении команды. Отобразится окно Список ошибок с перечнем всех ошибок, связанных с объектами, создаваемыми при импорте скрипта.

    На этом этапе необходимо настроить параметры проекта базы данных перед построением и развертыванием проекта базы данных. Дополнительные сведения см. в разделе Практическое руководство. Настройка свойств базы данных для проектов баз данных.

Проблемы и ограничения

Мастер импорта файла скрипта SQL ищет в заданном сценарии все инструкции языка определения данных (DDL) CREATE и добавляет соответствующие объекты в проекты. Действуют следующие ограничения.

  • Не распознанные инструкции помещаются в файл ScriptsIgnoredOnImport.sql в проекте базы данных.

  • Предполагается, что скрипт содержит определения объектов в одной базе данных. Все объекты импортируются в текущий проект базы данных. Если скрипт содержит определения многих баз данных, инструкции CREATE DATABASE и USE игнорируются и все объекты добавляются в проект базы данных. Если требуется создать несколько проектов баз данных, необходимо вручную разделить файл, чтобы получить по одному файлу для каждой базы данных, а затем импортировать каждый такой файл отдельно в соответствующие проекты базы данных. При импорте скрипта с определениями из нескольких баз данных в один проект базы данных можно получить значительное количество ошибок.

  • Также импортируются инструкции ALTER DATABASE, добавляющие файловые группы. Если скрипт содержит инструкцию CREATE, за которой следует инструкция DROP для созданного объекта, этот объект будет импортирован.

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

  • Пакеты необходимо разделять инструкциями GO.

    Примечание

    Для импорта результатов выполнения скрипта, а не инструкций CREATE, содержащихся в сценарии, можно выполнить скрипт для создания базы данных и затем использовать команду «Импорт схемы базы данных» для импорта результирующей базы данных.

См. также

Задачи

Практическое руководство. Просмотр объектов базы данных

Практическое руководство. Удаление объектов базы данных

Основные понятия

Создание и изменение объектов базы данных и сервера