Створення і зміна скриптів бази даних

Скрипти бази даних - це додаткові файли, що містять інструкції Transact-SQL або службові програми, такі як SQLCMD, які не є частиною визначення схеми бази даних. Розробник може використовувати скрипти бази даних в рамках виконання кроку розгортання (скрипти, що виконуються перед розгортанням і скрипти, що виконуються після розгортання) або зберігати загальні скрипти управління в проекті бази даних.

При перейменування об'єкта бази даних можна вдатися до рефакторингу бази даних для автоматичного оновлення всіх посилань на цей об'єкт в скрипті.

При побудові проекту бази даних скрипт, що виконується перед розгортанням, визначення об'єктів бази даних і скрипт, що виконується після розгортання, компілюються в один DBSCHEMA-файл схеми бази даних. Задати можна тільки один скрипт, що виконується перед розгортанням, і один скрипт, що виконується після розгортання, однак за допомогою SQLCMD в кожен з них можна включити інші скрипти. Додаткові відомості див. У розділі Including multiple scripts in the pre-deployment or post-deployment step. При побудові проекту бази даних все що включаються сценарії зливаються в один скрипт побудови.

За замовчуванням в проекті бази даних міститься порожній скрипт, що виконується перед розгортанням, і порожній скрипт, що виконується після розгортання. Ці скрипти називаються script.predeployment.sql і script.postdeployment.sql.

Ви вказуєте скрипт, що виконується перед розгортанням, задавши властивість Build Action файлу скрипта рівним "PreDeploy". Точно так же ви вказуєте скрипт, що виконується після розгортання, задавши властивість Build Action файлу скрипта рівним "PostDeploy". Якщо в якості скрипта, що виконується до або після розгортання, призначений спочатку один скрипт, а потім інший, для першого скрипта автоматично встановлюється дію побудови "Не в побудові". Така поведінка реалізовано тому, що для кожного проекту може існувати тільки один скрипт, що виконується перед розгортанням, і один скрипт, що виконується після розгортання.

Якщо при зміні імен або характеристик об'єктів, на які посилаються скрипти розгортання, які не відновити посилання в цих скриптах, може відбутися збій розгортання. Припустимо, наприклад, що в таблицю скрипта, що виконується після розгортання, вставлені дані. Якщо тепер перейменувати цю таблицю, без оновлення скрипт, використання оператора INSERT призведе до помилки. При перейменування таблиці за допомогою рефакторінга перейменування, скрипт розгортання оновлюється автоматично.

Включення декількох скриптів на кроці до або після розгортання

Для використання декількох скриптів на кроці до або після розгортання необхідно призначити скрипт верхнього рівня, що включає інші скрипти, що виконуються до або після розгортання, за допомогою наступної інструкції:

SQLCMD: r. \ FileName.sql

Схожі статті