¿Qué es el nivel de compatibilidad? de esa base de datos contra la que se está ejecutando?
Comprobar usando
SELECT compatibility_level
FROM sys.databases
WHERE name = 'YourDatabaseNameHere'
DATETIME2
se introdujo en SQL Server 2008 - entonces, si ese nivel está por debajo de 100 (que es SQL Server 2008), entonces DATETIME2
el tipo de datos aún no está disponible.
Si la base de datos se actualizó desde una instancia de SQL Server 2005, lo más probable es que su nivel de compatibilidad siga siendo 90 (SQL Server 2005) y, por lo tanto, DATETIME2
el tipo de datos aún no está disponible.
Puede actualizar el nivel de compatibilidad de su base de datos a valores más recientes usando:
ALTER DATABASE YourDatabaseNameHere
SET COMPATIBILITY_LEVEL = 100;
donde level = 100
es SQL Server 2008/2008 R2 y level = 110
es SQL Server 2012