Проект Visual Studio DB не может обнаружить изменения параметров хранимой процедуры. Это нормально?
Работая над проектом базы данных SQL Server 2008 в Visual Studio 2010, я добавил новый параметр в определение существующей хранимой процедуры. Когда я строил проект, он не смог обнаружить, что для ссылок на sproc в других местах проекта не было достаточно параметров. Это даже позволило мне развернуть проект.
Это так и должно быть, или я забыл поставить галочку где-нибудь?!
Сэм:)
2 ответа
Проекты базы данных не обнаруживают проблем с параметрами процедуры / функции. Кроме того, вы заметите, что вы можете удалить оскорбительную процедуру / функцию из вашего проекта все вместе, и она не потерпит неудачу.
В моем случае я использую внешний инструмент для управления программируемостью, поэтому не отказывать в сборке из-за отсутствия процедур - это плюс.
Если вы хотите проверить свои процедуры и функции, вы можете написать сценарий, который будет выполнять все ваши хранимые процедуры с помощью "SET FMTONLY ON". Процедура будет скомпилирована, но не будет внесено никаких постоянных изменений в БД во время выполнения. Вы не можете использовать это с процедурами, которые используют временные таблицы (синтаксис #table).
Вот как Microsoft делает это в Visual Studio, чтобы определить, каким должен быть вывод вашей хранимой процедуры.
Если вы не запустите мастер генерации кода (удалив sproc в VS Server Explorer, а затем перетащите его обратно), ваш проект не будет знать, что база данных изменилась. Вы можете получить ошибки во время выполнения, но не скомпилировать ошибки.
Если он не знает о каких-либо изменениях, он будет компилироваться нормально. Так что да, он должен вести себя так.