Подтвердить что ты не робот

Пустой оператор в T-SQL

Есть ли пустое ключевое слово оператора в T-SQL в Sql Server 2005 или новее? Что-то вроде инструкции NULL в PL/SQL.

4b9b3361

Ответ 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