powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нашел различия в компиляции запроса между 2014 и 2017 серверами
2 сообщений из 2, страница 1 из 1
Нашел различия в компиляции запроса между 2014 и 2017 серверами
    #39859701
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С чем это может быть связано?

Запрос - вот в таком виде отлично компилируется и выполняется на 2017 сервере:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
;WITH child_to_parents AS (
  SELECT a.AOGUID, a.OFFNAME, a.OKATO, a.SHORTNAME, a.AOLEVEL, cast(a.AOGUID as varchar(8000)) FULLPATH 
  FROM [dbo].[cls_FIAS] a
      WHERE AOLEVEL = 1 and REGIONCODE = 62
  UNION ALL
  SELECT a.AOGUID, a.OFFNAME, a.OKATO, a.SHORTNAME, a.AOLEVEL, Concat(b.FULLPATH, ',', cast(a.AOGUID as varchar(8000)))  FULLPATH  FROM  
	  [dbo].[cls_FIAS] a inner join child_to_parents b on a.parentguid = b.aoguid
      Where a.livestatus = 1
)
Select * from child_to_parents 



А вот на 2014 - только в таком виде:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
;WITH child_to_parents AS (
  SELECT a.AOGUID, a.OFFNAME, a.OKATO, a.SHORTNAME, a.AOLEVEL, cast(a.AOGUID as varchar(8000)) FULLPATH 
  FROM [dbo].[cls_FIAS] a
      WHERE AOLEVEL = 1 and REGIONCODE = 62
  UNION ALL
  SELECT a.AOGUID, a.OFFNAME, a.OKATO, a.SHORTNAME, a.AOLEVEL, cast(Concat(b.FULLPATH, ',', cast(a.AOGUID as varchar(8000))) as varchar(8000)) FULLPATH  FROM  
	  [dbo].[cls_FIAS] a inner join child_to_parents b on a.parentguid = b.aoguid
      Where a.livestatus = 1
)
Select * from child_to_parents 


А в первом случае - выдает:
Types don't match between the anchor and the recursive part in column "FULLPATH" of recursive query "child_to_parents".
Т.е. Concat(b.FULLPATH, ',', cast(a.AOGUID as varchar(8000)) выдает что-то, а не varchar(8000).
Интересно, почему?
Еще более интересно, почему в 2017 то прокатывает?!
...
Рейтинг: 0 / 0
Нашел различия в компиляции запроса между 2014 и 2017 серверами
    #39859741
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,

ИМХО, мне больше нравится поведение 2014, где явно требуется приведение типов, поскольку никто не сможет гарантировать, что после установки какого-нибудь сервис-пака поведение изменится
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нашел различия в компиляции запроса между 2014 и 2017 серверами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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