Pour le code suivant :
DÉCLARER @ss varchar(60)
SET @ss = 'admin'
select TRIM(@ss)
J'ai une erreur :
'TRIM' n'est pas un nom de fonction intégrée reconnu
Pour le code suivant :
DÉCLARER @ss varchar(60)
SET @ss = 'admin'
select TRIM(@ss)
J'ai une erreur :
'TRIM' n'est pas un nom de fonction intégrée reconnu
TRIM
est introduit dans SQL Server (à partir de 2017).
Dans les anciennes versions de SQL Server, pour effectuer une suppression d'espaces, vous devez utiliser LTRIM
et RTRIM
comme suit.
DECLARE @ss varchar(60)
SET @ss = ' admin '
select RTRIM(LTRIM(@ss))
Si vous n'aimez pas utiliser LTRIM
, RTRIM
partout, vous pouvez créer votre propre fonction personnalisée comme suit.
CREATE FUNCTION dbo.TRIM(@string NVARCHAR(max))
RETURNS NVARCHAR(max)
BEGIN
RETURN LTRIM(RTRIM(@string))
END
GO
Mais ce n'est pas une version plus ancienne - c'est apparemment SQL 2017. À moins qu'ils n'aient confondu l'outil client.
Il semble que quelqu'un ait malencontreusement tagué 2017 en lisant le premier commentaire d'un autre utilisateur. L'auteur du post n'a jamais mentionné qu'il s'agissait de 2017. Je suppose donc que c'est une version plus ancienne.
Ah je vois. Je suppose que l'OP ne reviendra jamais pour éclaircir cela, donc je vais voir si je peux modifier la question et le supprimer
Peut-être qu'il est réglé sur un niveau de compatibilité antérieur.
Utilisez ceci pour le découvrir:
SELECT compatibility_level FROM sys.databases
SQL Server 2017 est 140
S'il est inférieur, il ne reconnaîtra pas TRIM
Pour changer la compatibilité en SQL Server 2017
ALTER DATABASE nom_de_la_base_de_données
SET COMPATIBILITY_LEVEL = 140
Pour une liste des niveaux de compatibilité pris en charge pour chaque version de SQL Server, consultez ALTER DATABASE (Transact-SQL) Compatibility Level.
D'après les commentaires ci-dessous, votre version installée de SQL Server est SQL 2016. Vous devez installer SQL Server 2017 pour obtenir TRIM
Vous voudrez peut-être ajouter le lien vers ALTER DATABASE (Transact-SQL) Compatibility Level. Il contient une liste des niveaux de compatibilité pris en charge pour chaque version de SQL Server.
Tu as raison, cela serait utile. J'ai googlé cette réponse entière, et j'espère que l'auteur original pourra le faire lui-même ! N'hésitez pas à modifier !
Définition des erreurs de niveau de compatibilité avec Msg 15048, Niveau 16, État 1, Ligne 4 Les valeurs valides du niveau de compatibilité de la base de données sont 100, 110, 120 ou 130.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
2 votes
C'est bien sur mon
Serveur SQL 2017
12 votes
Peut-être qu'il est réglé sur un niveau de compatibilité antérieur. Utilisez ceci pour le savoir :
SELECT compatibility_level FROM sys.databases
. Il doit être 1401 votes
@Nick.McDermaid tu devrais poster cela comme une réponse.
1 votes
Vous pouvez utiliser ltrim ou rtrim
0 votes
TRIM est disponible dans SQL Server (à partir de la version 2017), donc aucune de ces versions :
--SQL Server 2016 SQL Server 13 SQL Server 13.0 13.0.1601.5
--SQL Server 2014 SQL Server 12 SQL Server 12.0 nom de code Hekaton 12.0.2000.8
--SQL Server 2012 SQL Server 11 SQL Server 11.0 nom de code Denali 11.0.2100.60