Проект базы данных VS2010 генерирует ошибку SQL03070 с операторами ALTER - PullRequest
4 голосов
/ 09 января 2012

Я некоторое время боролся с недавно настроенным проектом базы данных для сервера баз данных SQL 2008 R2 в VS2010. Я не являюсь разработчиком / администратором базы данных, но, как это часто бывает в ИТ, это оказалось у меня на столе.

Я создал сценарии для таблиц, представлений, хранимых процедур и функций, используя функцию SSMS => Tasks => Generate Scripts. Независимо от того, какие параметры я выбрал для генерации скрипта, у меня всегда возникают проблемы, т. Е. Как только я использую опцию ЕСЛИ НЕ СУЩЕСТВУЕТ , я получаю ошибку SQL03070 с сообщением "Это утверждение не является признается в этом контексте. ".

Я также получаю ту же ошибку при изменении CREATE [...] на ALTER [...] . После публикации на веб-сайте Microsoft Connect этого следует ожидать как «Проект базы данных не разрешает изменения, так как он будет динамически определять, требуется ли ALTER или CREATE для определенной цели базы данных». Хорошо, но когда я выбираю Выполнить SQL из контекстного меню, я получаю сообщение об ошибке, если конкретный объект уже существует в базе данных - в этом случае я ожидал динамическую генерацию оператора ALTER.

К сожалению, из-за большого количества устаревшего кода / объектов в базе данных я не могу создать или запустить сценарий полного развертывания, поэтому в основном идея заключается в использовании VS2010 с TFS, чтобы иметь хотя бы некоторые преимущества контроля исходного кода при изменении объекты в базе данных.

Всегда работает с ошибкой SQL03070, хотя это на самом деле не вариант, и импорт базы данных с использованием Импорт объектов и настроек базы данных из VS2010 также не работает должным образом, так как у меня нет ни одного файла для например определение таблицы (с ключами, индексами и т. д.), но несколько файлов, которые трудно обрабатывать.

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

Таким образом, в основном мой вопрос: каков наилучший подход для нашей установки использовать проекты баз данных / TFS из VS2010 без ошибок SQL03070, но с включенным анализом кода? Я чувствую себя довольно смущенным и извиняюсь, если некоторые аспекты моей проблемы могут быть недостаточно ясными, пожалуйста, не стесняйтесь спрашивать более подробную информацию, и я постараюсь ответить как можно лучше.

Заранее спасибо

G.

1 Ответ

1 голос
/ 24 января 2012

Идея, лежащая в основе проектов базы данных, заключается в том, что сценарии генерируют файл SQL, когда вы выполняете сборку развертывания (доступно из меню сборки).Однако прежде чем сделать это, вам нужно «настроить» конкретную базу данных.Это можно сделать с помощью вкладки «Развертывание» в свойствах проекта.Затем он получает схему базы данных Target, а затем получает схему вашего проекта и генерирует сценарий различий, чтобы сделать базу данных назначения такой же, как ваш проект.Надеюсь, это имеет смысл.

Это хорошая статья, которая объясняет это немного лучше.

http://blogs.msdn.com/b/gertd/archive/2009/06/05/declarative-database-development.aspx

Best of Luck,

C

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