Есть ли пустое ключевое слово оператора в T-SQL в Sql Server 2005 или новее? Что-то вроде инструкции NULL в PL/SQL.
Пустой оператор в T-SQL
Ответ 1
Нет. Нет эквивалента "Нет операции".
- Для сохраненного процесса у вас должно быть как минимум
SET NOCOUNT ON
. - Для
IF/ELSE
, если условие пустое, опустите его
Ответ 2
Вы можете объявить ярлык, чтобы ничего не делать.
DECLARE @value INT
IF @value IS NULL
BEGIN
no_op1:
END
Ответ 3
Уродливо бывает иногда. Я считаю, что их использование действительно. В длинной/сложной ветвящейся структуре решения с несколькими операторами if else некоторые из этих утверждений могут содержать условия, в которых вы специально не желаете никаких действий. Вы также не хотите, чтобы эти условия падали через по-прежнему, если выполняются определенные работы. В этом случае это действительное использование.
Вот два способа сделать это - см. B и C
Declare @status as char(1)
set @status = 'D'
If (@status = 'A')
select 'Great!'
Else if (@status = 'B')
begin
if null=null select null -- predicate never resolves true
end
Else if (@status = 'C')
set @status = @status -- set a variable to itself
Else
select 'Needs work!'
Обратите внимание: это упрощённый пример. Это лучше всего использовать для удобства чтения, когда условия сложны.
Ответ 4
Я также полагаю, что иногда есть законное использование для ничего script (автоматически создаваемые сценарии, например).
Хотя это старая нить, я поставлю свои два цента. Я думаю, что объявление переменной является одним из самых мягких утверждений, которые вы можете использовать. Заявление не отображается даже в планах выполнения:
IF (@variable = 0)
BEGIN
DECLARE @placeHolder BIT;
END