是否可以在Azure Sql数据库中设置与Server 2014匹配的兼容模式?
我们有一个使用Server 2014的现有应用程序--我是否可以将连接字符串更改为指向具有SQL 2014可压缩性的Azure Sql数据库?
发布于 2018-05-16 10:22:27
我没有删除任何@Shanky的内容,但我想说的是,目前Azure的数据库版本是12.0.2000.8。这是RTM版本的SQL Azure和MAJORVERSION of SQL2014。
我在这里附加屏幕快照,我已经连接到我的Azure数据库通过现场SSMS 2017。

这里我编写TSQL查询,以检查MajorVersion、ProductLevel、Edition、ProductVersion通过下面提到的查询在办公场所和Azure中。
SELECT
CASE
WHEN CONVERT(VARCHAR(128), SERVERPROPERTY ('productversion')) like '8%' THEN 'SQL2000'
WHEN CONVERT(VARCHAR(128), SERVERPROPERTY ('productversion')) like '9%' THEN 'SQL2005'
WHEN CONVERT(VARCHAR(128), SERVERPROPERTY ('productversion')) like '10.0%' THEN 'SQL2008'
WHEN CONVERT(VARCHAR(128), SERVERPROPERTY ('productversion')) like '10.5%' THEN 'SQL2008 R2'
WHEN CONVERT(VARCHAR(128), SERVERPROPERTY ('productversion')) like '11%' THEN 'SQL2012'
WHEN CONVERT(VARCHAR(128), SERVERPROPERTY ('productversion')) like '12%' THEN 'SQL2014'
WHEN CONVERT(VARCHAR(128), SERVERPROPERTY ('productversion')) like '13%' THEN 'SQL2016'
WHEN CONVERT(VARCHAR(128), SERVERPROPERTY ('productversion')) like '14%' THEN 'SQL2017'
ELSE 'unknown'
END AS MajorVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('ProductVersion') AS ProductVersion;
Go这里我只是附加Azure SQL数据库兼容性级别的屏幕截图,这是在Microsoft门户中执行这个TSQL查询后获得的。

甚至我也用New数据库(由我自己创建)和Sample (AdventureWorksLT)进行了检查(这是微软目前在Azure门户中提供的示例数据库)。
从这两个数据库的角度来看,我得到了兼容的相同版本。
若要确定数据库的当前兼容性级别,请执行以下Transact-SQL语句:
SELECT compatibility_level
FROM sys.databases
WHERE [name] = 'Your Database Name';SQL版本与默认兼容性级别的对齐如下:
100: in SQL Server 2008 and Azure SQL Database
110: in SQL Server 2012 and Azure SQL Database
120: in SQL Server 2014 and Azure SQL Database
130: in SQL Server 2016 and Azure SQL Database
140: in SQL Server 2017 and Azure SQL Database根据Joseph、SQL数据库引擎、博客文档、这里以及日期为July 7, 2017的文档,我们将在Azure SQL Database中公开发布兼容性级别140的官方预览。
根据Azure SQL数据库托管实例上的MSDN文档这里,此T特性有某些行为更改。有关所有T行为更改的详细信息,请参阅Azure SQL数据库管理实例与Server的差异。
通过TSQL更改COMPATIBILITY_LEVEL。
ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 | 90 } database_name是要修改的数据库的名称。
COMPATIBILITY_LEVEL { 140 | 130 | 120 | 110 | 100 | 90 | 80 }要与数据库兼容的Server版本。
可以配置下列兼容性级别值:
Product Database Engine Version Compatibility Level Designation Supported Compatibility Level Values
SQL Server 2017 (14.x) 14 140 140, 130, 120, 110, 100
Azure SQL Database 12 130 140, 130, 120, 110, 100
SQL Server 2016 (13.x) 13 130 130, 120, 110, 100
SQL Server 2014 (12.x) 12 120 120, 110, 100
SQL Server 2012 (11.x) 11 110 110, 100, 90
SQL Server 2008 R2 10.5 100 100, 90, 80
SQL Server 2008 10 100 100, 90, 80
SQL Server 2005 9 90 90, 80
SQL Server 2000 8 80 80 若要更改Microsoft中SQL数据库的兼容性级别,请执行以下操作。
ALTER DATABASE CompabilityTestDB
SET COMPATIBILITY_LEVEL = 140;
Go我也附加屏幕截图。

在更改以检查Azure门户中Azure SQL数据库的兼容性之后。
SELECT compatibility_level
FROM [sys].[databases]
WHERE [name] = 'CompabilityTestDB';在更改了门户中Azure SQL数据库的兼容性级别之后,我还在这里附加屏幕快照。

非常重要的注意:截至2018年1月,在Azure SQL数据库中,新创建的数据库的默认兼容性级别为140。我们不更新现有数据库的数据库兼容性级别。这是由客户自行决定的。尽管如此,我们强烈建议客户计划移动到最新的兼容性水平,以利用最新的改进。如果您想利用数据库兼容性级别140作为数据库的整体,但您有理由更喜欢Server 2012 (11.x)的基数估计模型(11.x),映射到数据库兼容性级别110,请参阅更改数据库作用域配置 (Transact- SQL ),特别是其关键字
LEGACY_CARDINALITY_ESTIMATION = ON。有关如何评估Azure SQL数据库上两个兼容性级别之间最重要查询的性能差异的详细信息,请参阅在Azure SQL数据库中提高了兼容级别130的查询性能。注意,本文引用了兼容性级别130和Server,但对于Server和Azure SQL数据库,相同的方法适用于移至140。
关于进一步,请参考这里,这里,这里和Azure SQL数据库的默认兼容性级别140
发布于 2018-05-16 07:09:41
是否可以在Azure Sql数据库中设置与Server 2014匹配的兼容模式?
是的是可能的。您只能使用下面的查询来更改数据库的兼容性级别。
ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = 130;--DB compatibility of SQL Server 2014 请注意,如果您将数据库的兼容性级别更改为较低的兼容性级别,则可能无法使用更新版本中的某些功能。若要更改兼容性级别并了解其后续效果,请阅读视图和更改兼容性级别
我可以将连接字符串更改为指向具有Sql 2014可压缩性的Azure sql数据库吗?
在SQL Server 2014 Azure数据库上创建的数据库的默认兼容级别为130,您希望在此更改什么?是的,您可以连接,但不仅仅是更改连接字符串。请阅读连接到Azure数据库的下一步部分。它有各种链接,详细介绍如何使用不同的应用程序连接到Azure SQL数据库
https://dba.stackexchange.com/questions/206822
复制相似问题