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

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

26 голосов
/ 13 июля 2010

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

Ответы [ 4 ]

43 голосов
/ 13 ноября 2012

Вы можете объявить, что ярлык ничего не делает.

DECLARE @value INT

IF @value IS NULL
BEGIN
no_op1: 
END
10 голосов
/ 21 апреля 2011

иногда бывает безобразно.Я верю, что их можно использовать.В длинной / сложной структуре ветвления решений с несколькими операторами 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!'

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

7 голосов
/ 09 августа 2011

Я также полагаю, что иногда есть законное использование для сценария "ничего" (например, автоматически создаваемые сценарии).

Хотя это старый поток, я добавлю два цента.Я думаю, что объявление переменной является одним из самых благоприятных утверждений, которые вы можете использовать.Заявление даже не отображается в планах выполнения:

IF (@variable = 0)
BEGIN
    DECLARE @placeHolder BIT;
END
0 голосов
/ 13 июля 2010

Нет. Не существует эквивалента «Нет операции».

  • Для хранимого процесса у вас будет как минимум SET NOCOUNT ON.
  • Для IF/ELSE, если условие пустое, опустить его

В противном случае, почему вы спрашиваете, пожалуйста? Если быть точным, какой смысл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...