Проект Visual Studio DB не может обнаружить изменения параметров хранимой процедуры. Это нормально?

Работая над проектом базы данных SQL Server 2008 в Visual Studio 2010, я добавил новый параметр в определение существующей хранимой процедуры. Когда я строил проект, он не смог обнаружить, что для ссылок на sproc в других местах проекта не было достаточно параметров. Это даже позволило мне развернуть проект.

Это так и должно быть, или я забыл поставить галочку где-нибудь?!

Сэм:)

2 ответа

Решение

Проекты базы данных не обнаруживают проблем с параметрами процедуры / функции. Кроме того, вы заметите, что вы можете удалить оскорбительную процедуру / функцию из вашего проекта все вместе, и она не потерпит неудачу.

В моем случае я использую внешний инструмент для управления программируемостью, поэтому не отказывать в сборке из-за отсутствия процедур - это плюс.

Если вы хотите проверить свои процедуры и функции, вы можете написать сценарий, который будет выполнять все ваши хранимые процедуры с помощью "SET FMTONLY ON". Процедура будет скомпилирована, но не будет внесено никаких постоянных изменений в БД во время выполнения. Вы не можете использовать это с процедурами, которые используют временные таблицы (синтаксис #table).

Вот как Microsoft делает это в Visual Studio, чтобы определить, каким должен быть вывод вашей хранимой процедуры.

Если вы не запустите мастер генерации кода (удалив sproc в VS Server Explorer, а затем перетащите его обратно), ваш проект не будет знать, что база данных изменилась. Вы можете получить ошибки во время выполнения, но не скомпилировать ошибки.

Если он не знает о каких-либо изменениях, он будет компилироваться нормально. Так что да, он должен вести себя так.

Другие вопросы по тегам