首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Azure Sql数据库中设置兼容性模式?

问在Azure Sql数据库中设置兼容性模式?
EN

Database Administration用户
提问于 2018-05-15 23:32:46
回答 2查看 2K关注 0票数 0

是否可以在Azure Sql数据库中设置与Server 2014匹配的兼容模式?

我们有一个使用Server 2014的现有应用程序--我是否可以将连接字符串更改为指向具有SQL 2014可压缩性的Azure Sql数据库?

EN

回答 2

Database Administration用户

发布于 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中。

代码语言:javascript
复制
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语句:

代码语言:javascript
复制
SELECT compatibility_level
FROM   sys.databases
WHERE  [name] = 'Your Database Name';

SQL版本与默认兼容性级别的对齐如下:

代码语言:javascript
复制
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。

代码语言:javascript
复制
ALTER DATABASE database_name   
SET COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 | 90 } 

database_name是要修改的数据库的名称。

代码语言:javascript
复制
COMPATIBILITY_LEVEL { 140 | 130 | 120 | 110 | 100 | 90 | 80 }

要与数据库兼容的Server版本。

可以配置下列兼容性级别值:

代码语言:javascript
复制
 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数据库的兼容性级别,请执行以下操作。

代码语言:javascript
复制
ALTER DATABASE CompabilityTestDB   
SET COMPATIBILITY_LEVEL = 140;
Go

我也附加屏幕截图。

在更改以检查Azure门户中Azure SQL数据库的兼容性之后。

代码语言:javascript
复制
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

票数 1
EN

Database Administration用户

发布于 2018-05-16 07:09:41

是否可以在Azure Sql数据库中设置与Server 2014匹配的兼容模式?

是的是可能的。您只能使用下面的查询来更改数据库的兼容性级别。

代码语言:javascript
复制
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数据库

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/206822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档