tsql - 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]
解决方案
推荐阅读
- graph - 图数据库设计:我应该添加关系,还是只是遍历
- sed - 构建 binutils:sed 有问题
- amazon-web-services - 验证应用程序以使用 AWS 服务的最佳方式?
- html - 隐藏SVG元素中途动画
- python - 使用多个 Docker 容器测试应用程序
- google-chrome-extension - Chrome 扩展程序 - 我可以在上下文菜单中添加搜索字段吗?
- google-data-studio - 创建连接器:在 setId 中使用某些字符时出错
- r - R中的左序二进制矩阵算法
- java - 你如何从并使用servlet在另一个jsp页面上编写/显示它?
- go - 命令“go get github.com/gohugoio/hugo”失败并在期间以 2 退出