执行在SQL Server 2012中的SQL Server 2008 R2中创建的存储过程并通过实体数据模型检索数据时,会发生以下错误:
正在使用的SQL Server版本不支持数据类型' datetime2'
存储过程在SQL Server Management Studio 2012中成功执行。但问题是回到实体数据模型时。
有人遇到过这种问题吗?
答案 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