4

Я проникаю с SQL Server 2008 к 2014 году, и я получаю сообщение об ошибкеSQL Server: с 2008 по 2014 год: - типы данных datetime и time несовместимы в операторе добавления. Любое другое решение?

Типы данных даты и времени и времени несовместимы в операторе добавления.

Я понял, что решение конвертирует время в DateTime, но у меня есть изменения во многих хранимых процедурах и представлениях.

Есть ли другие решения для вышеуказанной проблемы?

+2

Можете ли вы показать нам пример кода с вашей проблемой? – Paddy

+1

Работает ли он, когда вы меняете режим совместимости на 2008 год? 'ALTER DATABASE database_name SET COMPATIBILITY_LEVEL 100' – Jaco

ответ

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