Мне бы хотелось узнать ваше мнение о передовых методах использования сценариев SQL для установки базы данных.
ЗАДАЧА А)
В моем сценарии у меня есть несколько пакетов для создания таблиц.
Таблицы имеют много внешних ключей друг к другу, на данный момент я должен организовать партии в правильном порядке, чтобы избежать конфликта с таблицами FK.
Я хотел бы знать, может ли быть хорошей практикой сначала создавать таблицы и все столбцы без FK, а в конце сценария ALTER такие таблицы добавлять FK.
ПРОБЛЕМА Б)
Мой скрипт должен использоваться для создания разных БД на разных Серверах.
База данных может иметь разные имена при каждой установке.
Теперь в моем скрипте я создаю базу данных, используя:
CREATE DATABASE NameX
и
USE NameX
чтобы использовать его.
Потому что мне нужно будет вручную обновлять скрипт для каждой установки. Я подумал, что было бы здорово иметь ЦЕНТРАЛИЗОВАННЫЙ способ именования базы данных внутри сценария.
Таким образом, изменение простой переменной создаст базу данных с моим именем и всеми операторами USE.
Я пытался использовать МЕСТНЫЕ ПЕРЕМЕННЫЕ, но безуспешно, потому что после операторов GO они выходят за рамки.
У меня нет опыта использования sqlcmd и переменных там.
Есть идеи, как решить это внутри моего скрипта?
PS: я использую MS SQL 2008 и загружу свой скрипт в MS SMS
Спасибо, ребята, за вашу помощь, это сообщество великолепно: -)