SQL Server Query с «ELSE:» - PullRequest
       4

SQL Server Query с «ELSE:»

1 голос
/ 16 июня 2010

У меня есть различные проекты VB6, которые я поддерживаю, с некоторыми запросами, которые передаются на сервер с «ELSE:» с двоеточием, используемым в операторах case.** доль двоеточие используется для?Это вызывает ошибки в SQL2005 и выше, но SQL2000 работает без нареканий.

Я хотел бы просто удалить его из кода и перекомпилировать, но боюсь, что это сломает 10 других вещей в приложении..

Ответы [ 3 ]

4 голосов
/ 16 июня 2010

Вот в чем дело ... кто-то использовал ключевое слово ELSE в качестве ЭТИКЕТКИ в вашем коде.

Слово в TSQL, за которым следует двоеточие, является меткой.Вот пример:

DECLARE @Count int
SET @Count = 0

ONE_MORE_TIME:
IF @Count <> 33
    PRINT ‘Hello World’
    SET @Count = @Count + 1
END

IF @Count <> GOTO ONE_MORE_TIME

В вашем случае метка может быть "ELSE"

DECLARE @Count int
SET @Count = 0

ELSE:
IF @Count < 33
    PRINT ‘Hello World’
    SET @Count = @Count + 1
END

IF @Count < 33 GOTO ELSE

У меня такое ощущение, что этот код также имеет плохой отступ.Я почти был бы готов положить немного денег на это.

0 голосов
/ 16 июня 2010

Хм, это вызывает ошибки в SQL2005?

В SQL-сервере ELSE используется в операторах case для отлова всего, что еще не было перехвачено (это относится к вещам, которые «провалились» во всех других случаях). Например, , предположим, что мы хотели бы перечислить некоторые товары из базы данных цен и распределить их по категориям с помощью настраиваемого текстового столбца «Бюджет», поэтому для каждого товара мы посмотрим на его цену и зададим его значение Значение бюджета должно быть:

SELECT title, price,
        Budget = CASE price
         WHEN price > 20.00 THEN 'Expensive'
          WHEN price BETWEEN 10.00 AND 19.99 THEN 'Moderate'
          WHEN price < 10.00 THEN 'Inexpensive'
          ELSE 'Unknown'
        END,
FROM titles

ELSE здесь ловит все, что на самом деле не подпадает под "дорогой" или "умеренный" или "недорогой". Удаление этих ELSE здесь определенно испортит ваши запросы.

0 голосов
/ 16 июня 2010

почему бы не удалить его, перекомпилировать и протестировать приложение, чтобы увидеть, какое влияние оно может оказать?

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