Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сообщение 319  [new]
fvalery
Member

Откуда:
Сообщений: 16
выполняю запрос:

SELECT PROP_NAME, PROP_VALUE AS COMMENTARY, PROP_ID, PROP_VALUE, 1 AS STATIC
FROM PROPERTY_LIST_STAT
WHERE TYPE_ID IN
(
WITH n(PARENT_TYPE_ID, TYPE_ID)
AS
(
SELECT PARENT_TYPE_ID, TYPE_ID
FROM TYPE_LINKS
WHERE TYPE_ID = '0'
UNION ALL
SELECT nplus1.PARENT_TYPE_ID, nplus1.TYPE_ID
FROM TYPE_LINKS as nplus1, n
WHERE n.PARENT_TYPE_ID = nplus1.TYPE_ID
)
SELECT TYPE_ID FROM n
)

Выводятся ошиби:
Сообщение 156, уровень 15, состояние 1, строка 4
Неправильный синтаксис около ключевого слова "WITH".
Сообщение 319, уровень 15, состояние 1, строка 4
Неправильный синтаксис около ключевого слова "with". Если эта инструкция является обобщенным табличным выражением, предложением xmlnamespaces или предложением в контексте отслеживания изменений, предыдущую инструкцию необходимо завершить точкой с запятой.
Сообщение 102, уровень 15, состояние 1, строка 16
Неправильный синтаксис около конструкции ")".
5 сен 16, 12:32    [19628477]     Ответить | Цитировать Сообщить модератору
 Re: Сообщение 319  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31442
fvalery
Неправильный синтаксис около ключевого слова "WITH".
Сообщение 319, уровень 15, состояние 1, строка 4
Неправильный синтаксис около ключевого слова "with".
Да, так и есть. Определение "WITH" пишется в начале, а не в середине стейтмента, в котором оно используется.
5 сен 16, 12:36    [19628494]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Сообщение 319  [new]
Двоичник
Member

Откуда: Бобруйск
Сообщений: 292
пытаюсь научиться работать с JSON
Делаю по примеру отсюда

DECLARE @json varchar(max)='
    {
      "BusinessEntityID":1,
      "NationalIDNumber":"295847284",
      "JobTitle":"Chief Executive Officer",
      "BirthDate":"1969-01-29",
      "Gender":"M",
      "Contact":{"Home":"036/222-333","Mob":"064/3376222"}
   }   
';
 
SELECT * INTO Person
FROM OPENJSON(@json)
WITH (BusinessEntityID int,
         NationalIDNumber int,
         JobTitle varchar(100),
         BirthDate varchar(200),
         Gender varchar(2),
         Contact varchar(max)
)


Но получаю ошибку:
Сообщение 319, уровень 15, состояние 1, строка 49
Неправильный синтаксис около ключевого слова "with". Если эта инструкция является обобщенным табличным выражением,
 предложением xmlnamespaces или предложением в контексте отслеживания изменений, предыдущую инструкцию необходимо завершить точкой с запятой.


где @@version
Microsoft SQL Server 2016 (SP2) (KB4052908) - 13.0.5026.0 (X64)   Mar 18 2018 09:11:49   
Copyright (c) Microsoft Corporation  Standard Edition (64-bit) on Windows Server 2019 Standard 10.0 <X64> (Build 17763: ) (Hypervisor) 


Может где-то что-то включить надо? Научите, пожалуйста, что и где?
Спасибо

Сообщение было отредактировано: 2 июн 20, 13:18
2 июн 20, 13:18    [22144297]     Ответить | Цитировать Сообщить модератору
 Re: Сообщение 319  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
compatibility level у базы какой?
2 июн 20, 13:20    [22144300]     Ответить | Цитировать Сообщить модератору
 Re: Сообщение 319  [new]
Двоичник
Member

Откуда: Бобруйск
Сообщений: 292
Гавриленко Сергей Алексеевич,

Да, упустил этот момент. Спасибо
Был 2012, поменял на 2016 и заработало.
2 июн 20, 13:33    [22144311]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить