TRY_CONVERT échoue sur SQL Server 2012
L'instruction SQL suivante échoue sur SQL Server 2012(SP1) 11.0.3401.0 Version
DECLARE @b VARCHAR(10) = '12312.2'
SELECT TRY_CONVERT(DECIMAL(10,2),@b)
message d'erreur
Msg 195, Level 15, State 10, Line 2
'DECIMAL' is not a recognized built-in function name.
Mais fonctionne très bien sur SQL Server 2012(SP1) 11.0.3393.0
Les deux serveurs ont aucun problème avec TRY_PARSE()
DECLARE @b VARCHAR(10) = '12312.2'
SELECT TRY_PARSE(@b AS DECIMAL(10,2))
Mise à jour:
après d'autres tests et d'essayer de conversion de différents types en avons eu un autre message d'erreur différent
DECLARE @b VARCHAR(10) = '12312'
SELECT TRY_CONVERT(INT,@b)
Erreur:
error: Msg 195, Level 15, State 10, Line 2
'TRY_CONVERT' is not a recognized built-in function name.
Tellement original message d'erreur a été manquer à la tête, mais maintenant je suis encore plus confus pourquoi il n'est pas là.
Fonctionne très bien pour moi sur 11.0.3401.0 i.stack.imgur.com/Fge8p.png
OriginalL'auteur | 2014-03-10
Vous devez vous connecter pour publier un commentaire.
Vérifier que le niveau de compatibilité de la base de données pour la base de données que vous utilisez la fonction est définie sur
SQL Server 2012 (110)
sousproperties/options/compatibility level
pour la base de données.Content d'avoir aidé 🙂
Vous pouvez utiliser l'instruction suivante pour modifier le niveau de compatibilité:
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 90 | 100 | 110 | 120 }
Consultez msdn lienC'est quelque chose qui peut être modifié après la création de la base de données? Je sais que cela semble stupide, mais dans le domaine sur mon cas est désactivé. Problème d'autorisations peut-être?
OriginalL'auteur jpw
Assurez-vous que vous avez spécifié sur la base de données à laquelle vous souhaitez exécuter la requête.
Dans mon cas, j'ai eu un certain nombre de différentes bases de données sur le serveur avec différents niveaux de compatibilité.
OriginalL'auteur Zapnologica