Отключить проверку сценария TSQL?

позволяет говорят, что у меня есть сценарий как этот:

если (некоторое условие) начинают выбор somecolumn с sometable конца

Позволяет говорят, что "somecolumn" не существует, и условие не верно, что означает, что выбор НЕ выполняется. Даже при том, что выбор не был бы выполнен, сценарий не действителен, Studio управления жалуется на недостающий столбец "somecolumn".

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

Спасибо :-)

6
задан gbn 29 March 2010 в 18:46
поделиться

2 ответа

Использовать динамический SQL

if(some condition)
begin
    exec ('select somecolumn from sometable') --or sp_executesql
end

На самом деле нет смысла запускать это из-за того, что такое SQL. Он не выполняется построчно: весь пакет анализируется и т. Д. За один раз, и здесь генерируется ошибка, прежде чем что-либо действительно запускается в том смысле, в котором вы имеете в виду. Это сделано намеренно ...

4
ответ дан 17 December 2019 в 02:26
поделиться

Вы можете создать процедуру, которая ссылается на несуществующую таблицу, однако это единственное исключение из правила. Из BOL:

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

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

2
ответ дан 17 December 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: