Доступны ли общие выражения таблиц (CTE) в SQL Server 2000 - PullRequest
6 голосов
/ 08 июня 2009

Я недавно нашел следующую статью:

http://www.tsqltutorials.com/with-common-table-expressions.php

В статье не указывается, в какой версии SQL-сервера он стал доступен. Работает ли это в SQL Server 2000 и, если нет, в какой самой ранней версии он может использоваться? Обновление: Я попробовал быстрый тест, и тест не работает. Я спрашиваю, что это не работает в SS2000, чтобы убедиться, что это не я или мои настройки.

Ответы [ 5 ]

14 голосов
/ 08 июня 2009

Общие табличные выражения были введены в SQL Server 2005.

http://www.simple -talk.com / SQL / SQL-сервер 2005 / SQL-сервер 2005-синфазный табличное-выражение /

2 голосов
/ 08 июня 2009

Если вам нужна эта функциональность, это может быть хорошим способом убедить руководство перейти на новую версию.

1 голос
/ 03 сентября 2009

@ Аарон - вы сказали: «Уровень совместимости не влияет на доступность синтаксиса». На самом деле, я думаю, что это иногда так. Что я видел, используя базу данных уровня совместимости 80 (режим SQL Server 2000) в SQL Server 2005, так это то, что некоторые синтаксисы, которые являются новыми для SQL Server 2005, доступны, а другие нет. Например, как вы правильно заметили, CTE доступны. Однако оператор PIVOT это не так. Так что (по моему небольшому опыту) это, кажется, зависит от конкретной синтаксической особенности. (Я бы опубликовал это под верхним ответом, но очевидно, что этот сайт по своему дизайну требует, чтобы вы получили 50 очков репутации, прежде чем сможете ответить в соответствующем ветке месте.)

0 голосов
/ 10 апреля 2013

Запуск SQL 2008 с уровнем совместимости, установленным на 80, и CTE, похоже, работает. Настоящий странный. Не спрашивайте, почему у нас установлен уровень совместимости 80 ... только что начался здесь.

0 голосов
/ 04 февраля 2010

Будьте осторожны с уровнями совместимости и CTE, они немного странные.

SELECT 1 a
WITH A AS (SELECT 1 a)
    SELECT 1 from A

Работает на уровне совместимости SQL Server 2005 80 (SQL Server 2000), но не на уровне совместимости 90 (SQL Server 2005). Для уровня совместимости 90 правильно требуется точка с запятой перед.

Как отмечалось ранее, SQL Server 2000 вообще не поддерживает это.

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