powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / OPENJSON проблема с динамическим SQL
7 сообщений из 7, страница 1 из 1
OPENJSON проблема с динамическим SQL
    #39599377
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть задача создать хранимую процедуру на нескольких серверах:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE PROCEDURE dbo.uspParseJson
    @json nvarchar(max)  
AS   

    SET NOCOUNT ON;  
    SELECT *
   FROM OPENJSON(@json, N'$.Orders')
   WITH (
    Number      VARCHAR(200)    '$.Order.Number',
    Date        DATETIME        '$.Order.Date'
)
  



Хотел сделать это через Динамический SQL по очереди выполняя запрос на каждой БД:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
EXEC('CREATE PROCEDURE dbo.uspParseJson
    @json nvarchar(max)  
AS   

    SET NOCOUNT ON;  
    SELECT *
   FROM OPENJSON(@json, N''$.Orders'')
   WITH (
    Number      VARCHAR(200)    ''$.Order.Number'',
    Date        DATETIME        ''$.Order.Date''
)')



Но сервер выдает ошибку
Некорректный синтаксис возле '$.Order.Number'

Кто знает как можно обойти этот Баг (если он таковым является)?
...
Рейтинг: 0 / 0
OPENJSON проблема с динамическим SQL
    #39599425
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452Кто знает как можно обойти этот Баг (если он таковым является)?Ваш Баг нужно обойти его исправлением.

Вы создаёте динамическим запросом хранимую процедуру, а нужно внутри процедуры сделать динамический запрос.
...
Рейтинг: 0 / 0
OPENJSON проблема с динамическим SQL
    #39599426
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452Но сервер выдает ошибку
Некорректный синтаксис возле '$.Order.Number'А, подождите, вам и нужно создать процедуру?
Извините, неправильно прочитал вопрос.
Всё правильно, это должно работать.

Очевидно, версия сервера или уровень совместимости баз неправильные.
...
Рейтинг: 0 / 0
OPENJSON проблема с динамическим SQL
    #39599467
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

С вашей стороны очевидно, но по факту нет, сервер 2017, базы такие же. Если создавать процедуру напрямую, без динамического sql все прекрасно создается. Проблема проявляется толькь когда оборачиваешь скрипт в exec(‘’)
...
Рейтинг: 0 / 0
OPENJSON проблема с динамическим SQL
    #39599499
Фотография Барсук-копатель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452alexeyvg,

С вашей стороны очевидно, но по факту нет, сервер 2017, базы такие же. Если создавать процедуру напрямую, без динамического sql все прекрасно создается. Проблема проявляется толькь когда оборачиваешь скрипт в exec(‘’)только что проверил
все создается
проверяйте версии серверов и настройки баз
...
Рейтинг: 0 / 0
OPENJSON проблема с динамическим SQL
    #39599508
ага
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выполните запрос и поглядите результат
Код: sql
1.
SELECT name, compatibility_level FROM sys.databases


compatibility_level должен быть >=130
...
Рейтинг: 0 / 0
OPENJSON проблема с динамическим SQL
    #39599622
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Все были правы, сервер обновил, а базы не поменял. Спасибо за помощь
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / OPENJSON проблема с динамическим SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]