STRING_AGG работает на уровне совместимости <140 - PullRequest
0 голосов
/ 31 марта 2020

Я понимаю, что STRING_AGG введен в SQL Server 2017, который имеет уровень совместимости 140.

Ожидаемое поведение - получить сообщение об ошибке 'string_agg' не является распознанной встроенной функцией при запуске в версии 2016 или ниже.

Ошибка при запуске на локальном SQL сервере (2016). Тем не менее, он работает без ошибок, когда я запускаю на Azure SQL, даже после снижения уровня совместимости до 130, и даже 110 не выдало никакой ошибки.

Что-то изменилось в поведении compatibility_level в Azure SQL? Мол, и старый, и новый синтаксис / код / ​​функции работают?

1 Ответ

1 голос
/ 31 марта 2020

Это поведение задокументировано в самой последней строке раздела замечаний:

STRING_AGG доступно на любом уровне совместимости.

Какой означает, что если вы используете SQL версию сервера, которая поддерживает string_agg -

  • SQL Server 2017 (или выше)
  • Azure SQL База данных
  • Azure Synapse Analytics (SQL DW)

встроенная функция string_agg будет работать независимо от уровня совместимости, установленного для указанной вами c базы данных, которую вы ' работает с.

...