首页 > 解决方案 > SQL SERVER V 2017 only 函数如何在兼容级别较低的数据库上运行

问题描述

我的 LOCAL、DEV 和 PROD 服务器为 v 2017,但数据库的兼容性级别为 2012 (110)。

一位同事声称由于不支持 STRING_AGG,他在获取最新版本时遇到了问题。我假设他的运行速度低于 SSMS 2017

我以为我必须在部署之前提高兼容性级别,但似乎并非如此。

为什么这行得通?这是不受支持的“功能”吗?

我的DEV服务器版本是2017,compatibility_level是110

DROP TABLE IF EXISTS test
CREATE TABLE test (id int IDENTITY(1,1), dt date DEFAULT(GETDATE()), theData VARCHAR(20) NULL)

INSERT INTO [dbo].[test]([theData])
VALUES(NULL),('some data'),('old data'),(NULL)

SELECT STRING_AGG(t.[theData],', ') [testing string_agg method]
FROM [dbo].[test] AS [t] 

标签: tsql

解决方案


推荐阅读