Могу ли я отключить проверку идентификаторов в SQL Server 2005? - PullRequest
0 голосов
/ 19 декабря 2008

У меня есть ассортимент объектов базы данных (таблиц, функций, представлений, хранимых процедур), каждый из которых записан в свой собственный файл (ограничения находятся в том же файле, что и таблица, которую они изменяют), который я хотел бы иметь возможность выполнять в произвольный порядок. Возможно ли это в SQL Server 2005?

Некоторые объекты в качестве примера:
Таблица A (ссылки на таблицу B)
Таблица B (ссылка на функцию A)
Функция A (ссылки вид A)
Представление A (ссылки на таблицу C)

Должен выполняться в следующем порядке:
Стол С
Вид A
Функция A
Таблица B
Таблица A

Если сценарии выполняются не по порядку, выдают ошибки об отсутствующих объектах.

Причина, по которой я спрашиваю, состоит в том, что в проекте, над которым я работаю, мы поддерживаем каждый объект базы данных в своем собственном файле (для целей управления исходным кодом), а затем поддерживаем основной сценарий, который создает каждый объект базы данных в правильном порядке. Это требует, чтобы мастер-скрипт редактировался вручную каждый раз, когда объект добавляется в схему. Я хотел бы иметь возможность просто выполнить каждый скрипт, как он есть в файловой системе.

Ответы [ 4 ]

2 голосов
/ 19 декабря 2008

По моему опыту, наиболее проблемная проблема связана с представлениями, на которые можно ссылаться рекурсивно. Однажды я написал утилиту для перебора скриптов, пока все ошибки не будут устранены. Который работает только тогда, когда вы загружаете все. Порядок был важен - я думаю, что я сделал UDT, таблицы, FK, представления (итеративно), SP и UDF (итеративно, пока мы не решили, что SP, вызывающие SP, были плохой идеей, а UDF вообще плохой идеей.)

1 голос
/ 19 декабря 2008

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

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

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

0 голосов
/ 19 декабря 2008

APEX SQL Script должен анализировать зависимости и упорядочивать скрипт соответствующим образом, но даже тогда у меня были проблемы.

0 голосов
/ 19 декабря 2008

Я нашел эту страницу , где автор написал хорошую процедуру для выполнения именно того, о чем вы говорите. Похоже, вам просто нужно иметь две версии: одну для отключения ограничений и другую для повторного включения.

...