首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解SQL Server中的COMPATIBILITY_LEVEL

了解SQL Server中的COMPATIBILITY_LEVEL
EN

Stack Overflow用户
提问于 2011-04-12 00:13:55
回答 3查看 12.4K关注 0票数 9

据我所知,将数据库设置为COMPATIBILITY_LEVEL先于本机数据库会阻止特性被使用。然而,情况似乎并非如此。看看下面的SQL脚本:

代码语言:javascript
复制
CREATE DATABASE Foo
GO
USE Foo
GO
ALTER DATABASE Foo SET COMPATIBILITY_LEVEL = 80
GO

CREATE TABLE Bar
(
    Id UNIQUEIDENTIFIER NOT NULL,
    TestNvcMax NVARCHAR (MAX) NOT NULL, -- Arrived in SQL 2005
    TestDateTime2 DATETIME2 (7) NOT NULL -- Arrived in SQL 2008
)
GO

但是这张桌子创造了完美的--有什么想法吗?我认为某种类型的错误消息或警告应该是合适的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-12 00:26:29

在这里,您可以了解兼容性级别80、90和100之间的差异。ALTER DATABASE Compatibility Level

显然,新的数据类型不受影响。我认为兼容级别是为了让SQL Server像旧版本一样“表现”,而不是阻止你做新的花哨的事情。

票数 8
EN

Stack Overflow用户

发布于 2011-04-12 00:28:03

BOL说:

兼容级别仅提供与早期版本的SQL Server的部分向后兼容性。

另外:

新功能可能在较旧的兼容级别下工作,但设置选项可能需要进行调整。

我相信这就是你的情况。

票数 8
EN

Stack Overflow用户

发布于 2016-07-26 23:20:10

我知道这是一个古老的帖子,但对于像我一样最终来到这里的其他人来说,更多的信息总是有帮助的。

也可能是新的兼容性在运行create table语句之前没有生效。

“数据库的新兼容性设置在发出使用数据库或使用该数据库作为默认数据库处理新登录时生效。”(https://msdn.microsoft.com/en-us/library/bb510680.aspx)

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

https://stackoverflow.com/questions/5624262

复制
相关文章

相似问题

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