Quel est le niveau de compatibilité de cette base de données que vous utilisez ?
Vérifier avec
SELECT compatibility_level
FROM sys.databases
WHERE name = 'YourDatabaseNameHere'
DATETIME2
a été introduit dans SQL Server 2008 - donc si ce niveau est inférieur à 100 (qui est SQL Server 2008), alors le DATETIME2
le type de données n'est pas encore disponible.
Si la base de données a été mise à niveau à partir d'une instance SQL Server 2005, il est fort probable que son niveau de compatibilité soit toujours à 90 (SQL Server 2005) et donc le DATETIME2
le type de données n'est pas encore disponible.
Vous pouvez mettre à niveau votre niveau de compatibilité de base de données vers des valeurs plus récentes en utilisant :
ALTER DATABASE YourDatabaseNameHere
SET COMPATIBILITY_LEVEL = 100;
où level = 100
est SQL Server 2008 / 2008 R2, et level = 110
est SQL Server 2012