Есть ли пустое ключевое слово оператора в T-SQL в Sql Server 2005 или новее? Что-то вроде инструкции NULL в PL/SQL.Пустой оператор в T-SQL
ответ
Нет. Нет эквивалента «Нет операции».
- Для хранимой процедуры у вас должно быть не менее
SET NOCOUNT ON
. - Для
IF/ELSE
, если условие пусто опускаем
В противном случае, почему вы спрашиваете пожалуйста? Если быть точным, в чем смысл?
ОК. Благодарю. Мне это нужно для моего генератора SQL. Но в любом случае кажется, что я должен удалить пустую ветвь (IF/ELSE, CASE) ранее из моих промежуточных объектов. Я обнаружил, что пустой оператор можно «эмулировать» пустым блоком (BEGIN END), но он выглядит не очень хорошо. – ternyk
уродливый бывает иногда. Я считаю, что их использование действительно. В длинной/сложной ветвящейся структуре решения с несколькими операторами if else некоторые из этих утверждений могут содержать условия, в которых вы специально не желаете никаких действий. Вы также не хотите, чтобы эти условия падали через по-прежнему, если выполняются определенные работы. В этом случае это действительное использование.
Вот два способа сделать это - см В и С
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!'
Заметим, что это чрезмерно упрощенный пример. Он лучше всего используется для удобства чтения, когда условия сложны.
yep Я думаю, что «if null = null select null» близок к пустым случаям // NOOP в обычном языке типа C – syclee
Мне очень нравится версия 'if null = null select null', потому что она повторяется в пределах области , в случае, если это нужно делать чаще, и у него нет никаких побочных эффектов. –
Я также считаю, что иногда существует законное использование сценария ничего (автоматически создаваемые сценарии, например).
Хотя это старая нить, я поставлю свои два цента. Я думаю, что объявление переменной является одним из самых мягких утверждений, которые вы можете использовать. Заявление также не отражено в планах исполнения:
IF (@variable = 0)
BEGIN
DECLARE @placeHolder BIT;
END
Вы можете объявить ярлык, чтобы ничего не делать.
DECLARE @value INT
IF @value IS NULL
BEGIN
no_op1:
END
Спасибо, я думаю, что это лучший способ ничего не делать, потому что он действительно ничего не делает, он только декларативный. Я собираюсь использовать это для моего автоматического перевода кода хранимой процедуры из Firebird в SQL-Server, поскольку Firebird разрешает пустые блоки, а SQL-Server - нет. По крайней мере, для случаев, когда начальный блок нельзя удалить тривиально. –
Отлично. И обратите внимание, что тот же ярлык нельзя определить более одного раза .. Вот почему вы должны называть его no_op1 2 3 ... – sotn
- 1. SQL Server - TSQL оператор запроса
- 2. Оператор смены оператора CASE - TSQL
- 3. TSQL Неравномерный оператор относительно дат
- 4. Если пустой оператор в ColdFusion
- 5. Пустой оператор оператор задвижка номер или алфавит
- 6. TSQL: оператор if внутри оператора With
- 7. Оператор TSQL CASE без сопоставимого сравнения
- 8. Оператор Oracle и TSQL NO LOCK
- 9. TSQL условный IS NULL и = оператор
- 10. Оператор TSQL - MERGE с составным ключом
- 11. C# можно ошибочно пустой оператор
- 12. Имеет ли VB.NET пустой оператор?
- 13. Почему Java имеет пустой оператор?
- 14. оператор присваивания на пустой inizializer_list
- 15. Firebase аутентификации Возвращение пустой оператор
- 16. подготовленный оператор возвращает пустой массив
- 17. Пустой оператор в коммутаторе/корпусе Matlab?
- 18. Оператор CASE в where where в запросе tsql
- 19. TSQL таблицы переменных в WHERE оператор вызывает ошибку
- 20. TSQL: попытка превратить объединенный оператор select в инструкцию обновления
- 21. Преобразование TSQL в HSQL
- 22. TSQL - Case - Значения в?
- 23. Дата Сравнение в TSQL
- 24. Если (isset()) оператор вызывает пустой экран
- 25. Пустой оператор после while '(' Ожидаемая ошибка
- 26. Оператор MySQL IF для проверки пустой таблицы
- 27. Оператор нуль-коалесценции соответствует пустой строке?
- 28. PDO подготовленный оператор возвращает пустой массив
- 29. Пустой оператор C++ if возвращает нулевое значение?
- 30. Php 7.1 - массив Пустой оператор индекс
Что вы пытаетесь достичь? – cjk