Sql FOR XML PATH возвращает неверный синтаксис рядом с «PATH»

Кажется, это должно быть очень просто, но я не вижу, что не так.

DECLARE @companies TABLE(
    [companyId] SMALLINT        
)

INSERT INTO @companies
   SELECT TOP 3 tc.CompanyID AS 'companyId'
   FROM dbo.tblCompanies tc

SELECT * 
FROM @companies c

Этот запрос возвращает эти данные.

companyId
---------
  1
  2
  3

Когда я пытаюсь использовать FOR XML, они работают:

-- this works
SELECT  companyId
FROM @companies [company]
FOR XML AUTO

-- this works
SELECT  companyId
FROM @companies [company]
FOR XML RAW

Но это возвращает ошибку

Неверный синтаксис рядом с «ПУТЬ»

и я не могу понять, почему.

-- why doesn't this work?
SELECT companyId
FROM @companies
FOR XML PATH('company')

Что мне не хватает?


person Marvin    schedule 19.08.2014    source источник
comment
Я что-то упустил, потому что я не получаю ошибку. Что такое SELECT @@VERSION;?   -  person Aaron Bertrand    schedule 20.08.2014


Ответы (1)


Боже, я подключался к серверу на работе, который был Sql Server 2000. Вот почему он не работал. Не поддерживался.

person Marvin    schedule 19.08.2014
comment
Ну, ДУХ! :-) Классическая проблема PICNIC - проблема в кресле, а не в компьютере :-) - person marc_s; 20.08.2014
comment
В гетерогенной среде не сразу видно, к какой версии SQL я подключен. Я был благодарен за этот намек. IDTTWAPITC (не думаю, что проблема была в кресле). - person cdonner; 01.09.2015