我了解在您的原生数据库之前将数据库设置为COMPATIBILITY_LEVEL会阻止使用功能。然而,情况似乎并非如此。见证以下SQL脚本:
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
但这张桌子创造了完美 - 任何想法?我本以为某种错误信息或警告是合适的
答案 0 :(得分:8)
在这里,您可以了解兼容级别80,90和100之间的差异。ALTER DATABASE Compatibility Level
显然新数据类型不受影响。我认为兼容性水平是为了使SQL Server“表现得像”旧版本,而不是阻止你做新的花哨的东西。
答案 1 :(得分:8)
答案 2 :(得分:3)
我知道这是一篇旧帖子,但是对于那些像我一样在这里结束的人来说,更多的信息总是有用的。
在运行create table语句之前,新的兼容性也可能没有生效。
"数据库的新兼容性设置在发出USE数据库或使用该数据库作为默认数据库处理新登录时生效。" (https://msdn.microsoft.com/en-us/library/bb510680.aspx)