我正在从SQL Server 2008迁移到2014年,我收到错误
数据类型datetime和time在add运算符中不兼容。
我想出解决方案将时间转换为DateTime,但我在许多存储过程和视图中都有变化。
针对上述问题还有其他解决方案吗?
答案 0 :(得分:3)
如果您希望升级到SQL2014,除了重新分解代码之外,没有其他解决方案。下面的示例演示了将兼容级别设置为2008并不能解决此错误。您必须修改所有存储过程和视图。
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = 100
GO
--DOESNOT WORK IN 2012
DECLARE @ESTRecords TABLE
(
ESTime TIME(7) NOT NULL ,
ESTDate DATE NOT NULL ,
ESTDateTime AS ( CONVERT(DATETIME, ESTDate, ( 108 )) + ESTime )
PERSISTED
)
INSERT INTO @ESTRecords
( ESTime, ESTDate )
VALUES ( '12:00 PM', '12/31/2012' )
SELECT *
FROM @ESTRecords