SQL - Неверная синтаксическая ошибка «с» - PullRequest
0 голосов
/ 03 марта 2011

Здравствуйте, не могли бы вы помочь мне с этим, я использую SQL Server 2005, я получаю сообщение об ошибке «Неверный синтаксис рядом с ключевым словом« WITH »», спасибо

create table #Act(
iAId int, 
iPAID int, 
sResource nvarchar(10), 
sName nvarchar(50), 
W1 int, 
W2 int, 
W3 int)

    INSERT INTO #Act (iAId, iPAID, sResource, sName, W1, W2, W3)
        SELECT AC00000.iAId, AC00000.iPAID, AC00000.sResource, 
               Activities.sName, WK00000.W1, WK00000.W2, WK00000.W3
        FROM   AC00000 INNER JOIN
               Activities ON AC00000.iActTypeId = Activities.iActivityId INNER JOIN
               WK00000 ON AC00000.iAId = WK00000.iAId
    ;WITH acts (iAId, iPAID, sResource, sName, W1, W2, W3) AS
    (
         SELECT parent.iAId, 
                parent.iPAID,
                parent.sResource, 
                parent.sName, 
                parent.W1, 
                parent.W2, 
                parent.W3
         FROM   #Act parent
         WHERE iPAID is null

         union all

         SELECT child.iAId, 
                child.iPAID,
                child.sResource, 
                child.sName, 
                child.W1, 
                child.W2, 
                child.W3
         FROM   #Act child

        join acts
        on child.iPAID = acts.iAID
    )
    select * from acts

1 Ответ

4 голосов
/ 03 марта 2011

WITH (Общие табличные выражения) работает только в SQL Server 2005 или более поздней версии.

Даже на уровне совместимости 80 операторы WITH работают в SQL Server 2005.

  • Убедитесь, что вы не используете SSMS 2005 для экземпляра SQL Server 2000.
  • Убедитесь, что на вашем сервере только один экземпляр SQL Server, и это экземпляр 2005 года.
  • запустите это, чтобы проверить

select @@version


Точный текст ошибки появляется, когда вы используете «с» для SQL Server 2000

Сообщение 156, Уровень 15, Состояние 1, Строка 2
Неверный синтаксис рядом с ключевым словом «с».

...