Проект базы данных SQL Server для Visual Studio 2010 - игнорировать хранимые процедуры и функции - PullRequest
0 голосов
/ 26 мая 2010

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

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

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

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

1 Ответ

2 голосов
/ 26 мая 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...