позволяет говорят, что у меня есть сценарий как этот:
если (некоторое условие) начинают выбор somecolumn с sometable конца
Позволяет говорят, что "somecolumn" не существует, и условие не верно, что означает, что выбор НЕ выполняется. Даже при том, что выбор не был бы выполнен, сценарий не действителен, Studio управления жалуется на недостающий столбец "somecolumn".
Вопрос: я могу так или иначе отключить этот вид проверки так, чтобы сценарий был выполнен и начиная с, если не будет верно, то это никогда не будет замечать, что столбец отсутствует?
Спасибо :-)
Использовать динамический SQL
if(some condition)
begin
exec ('select somecolumn from sometable') --or sp_executesql
end
На самом деле нет смысла запускать это из-за того, что такое SQL. Он не выполняется построчно: весь пакет анализируется и т. Д. За один раз, и здесь генерируется ошибка, прежде чем что-либо действительно запускается в том смысле, в котором вы имеете в виду. Это сделано намеренно ...
Вы можете создать процедуру, которая ссылается на несуществующую таблицу, однако это единственное исключение из правила. Из BOL:
Отложенное разрешение имен может использоваться только , когда вы ссылаетесь на несуществующие объекты таблицы. Все остальные объекты должны существовать во время создания хранимой процедуры . Например, когда вы ссылаетесь на существующую таблицу в хранимой процедуре , вы не можете перечислить несуществующие столбцы для этой таблицы.
Помимо использования динамического SQL, нет никаких средств для ссылки на несуществующие столбцы в хранимой процедуре.