TRIM不是公认的内置函数名称

时间:2019-01-24 06:21:29

标签: sql sql-server tsql

对于以下代码:

DECLARE @ss varchar(60)
  SET @ss = 'admin'

  select TRIM(@ss)

我有一个错误:

  

'TRIM'不是公认的内置函数名称

3 个答案:

答案 0 :(得分:8)

TRIM在SQL Server中引入(从2017年开始)。

在旧版的SQL Server中,要执行修剪,您必须像下面这样使用LTRIMRTRIM

DECLARE @ss varchar(60)
  SET @ss = ' admin '

  select RTRIM(LTRIM(@ss))

如果您不喜欢在各处使用LTRIMRTRIM,则可以创建自己的自定义函数,如下所示。

   CREATE FUNCTION dbo.TRIM(@string NVARCHAR(max))
    RETURNS NVARCHAR(max)
     BEGIN
      RETURN LTRIM(RTRIM(@string))
     END
    GO

答案 1 :(得分:4)

也许已将其设置为较早的兼容性级别。

使用它来查找:

SELECT compatibility_level FROM sys.databases

SQL Server 2017是 140

如果更低,它将无法识别TRIM

要更改与SQL Server 2017的兼容性

ALTER DATABASE database_name   
SET COMPATIBILITY_LEVEL = 140

有关每种SQL Server版本支持的兼容性级别的列表,请查看ALTER DATABASE (Transact-SQL) Compatibility Level.

答案 2 :(得分:1)

您可以将此代码用于旧版本:

SELECT RTRIM (LTRIM (' JKL ')) AS Trimmed

哪个产生'JKL'