SQL Server 2012:正在使用的SQL Server版本不支持数据类型' datetime2'

时间:2014-05-21 06:59:15

标签: c# entity-framework-4 sql-server-2012

执行在SQL Server 2012中的SQL Server 2008 R2中创建的存储过程并通过实体数据模型检索数据时,会发生以下错误:

  

正在使用的SQL Server版本不支持数据类型' datetime2'

存储过程在SQL Server Management Studio 2012中成功执行。但问题是回到实体数据模型时。

有人遇到过这种问题吗?

1 个答案:

答案 0 :(得分:2)

您正在运行的数据库的兼容级别是什么?

使用

进行检查
SELECT compatibility_level 
FROM sys.databases 
WHERE name = 'YourDatabaseNameHere'
SQL Server 2008 中引入了

DATETIME2 - 因此,如果该级别低于100(即SQL Server 2008),则DATETIME2数据类型不可用爱好。

如果数据库是从SQL Server 2005实例升级的,那么它的兼容级别仍然是90(SQL Server 2005),因此DATETIME2数据类型尚不可用。

您可以使用以下方法将数据库兼容级别升级到更新的值:

ALTER DATABASE YourDatabaseNameHere
SET COMPATIBILITY_LEVEL = 100;

其中level = 100是SQL Server 2008/2008 R2,level = 110是SQL Server 2012