Visual Studio 2010 SQL Server Database Project — игнорировать хранимые процедуры и функции

Мне очень нравятся новые проекты базы данных SQL Server в Visual Studio 2010. Мне также нравится использовать параметр «Создать операторы DROP для объектов, находящихся в целевой базе данных, но не входящих в проект базы данных» в свойства развертывания.

Однако я не хочу управлять хранимыми процедурами и функциями с помощью этого интерфейса; У меня есть другой инструмент для этого. Каждый раз, когда я выполняю сборку и развертывание, VS удаляет мои хранимые процедуры, которые я создал с помощью своей внешней программы. Я хотел бы по существу «игнорировать» хранимые процедуры и функции.

Есть ли способ игнорировать хранимые процедуры и функции при построении проектов базы данных SQL Server?

Я не смогу использовать параметр «Создать операторы DROP...», если я хочу использовать свой внешний инструмент для хранимых процедур и функций.


person Carter Medlin    schedule 25.05.2010    source источник
comment
Могу я спросить, что такое «другой инструмент»?   -  person David Atkinson    schedule 01.06.2010


Ответы (1)


VSDB хранит определения процедур и функций в простых файлах SQL. Я бы порекомендовал, чтобы «другой инструмент» поместил процедуры и функции в виде файлов SQL прямо в проект VSDB, затем создал свой проект VS DB и развернул его. Таким образом, вы получаете бесплатную проверку процедур и функций по схеме, так как сборка VS DB проверит их. сборка решения VS DB.

Я понимаю, что, возможно, «другой инструмент», скорее всего, не будет сотрудничать и захочет развернуть свой вывод прямо в базу данных (т.е. подключить и создать процедуры), но если вы можете изменить его для создания файлов SQL вместо этого, то это стоит проводить интеграцию с VS DB и иметь единообразное развертывание.

Если VS DB «игнорирует» ваши процедуры и функции, это может работать, но вы можете столкнуться со всевозможными проблемами, потому что, хотя VS DB развертывает новую схему для таблиц и т. д., она может удалять и создавать их заново, тем самым нарушая зависимости от ваших «других». процедуры и функции инструмента, нарушение необходимых прав доступа и мало ли что еще. Не говоря уже о том, что если у вас есть только одна функция со SCHEMABINDING, это полностью предотвратит развертывание VS DB. А поскольку скалярные функции обычно требуют SCHEMABINDING для предотвращения буферизации...

person Remus Rusanu    schedule 25.05.2010