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

时间:2011-07-25 10:04:35

标签: sql sql-server-2008

我创建了简单的功能

create function TRIM(@data varchar(20)) returns varchar(100)
as
begin
  declare @str varchar(20)
  set @str = rtrim(ltrim(@data))
  return @str
end

我正在以下面的方式执行。

declare @s varchar(25)
set @s = '      Amru    '
select TRIM(@s)

我收到以下错误。

Msg 195, Level 15, State 10, Line 3
'TRIM' is not a recognized built-in function name.

有人可以帮我找到问题吗?

5 个答案:

答案 0 :(得分:16)

调用用户定义的函数时,需要使用Schema前缀。在你的情况下,这很可能是“dbo”。

将您的select语句更改为:

declare @s varchar(25)
set @s = '      Amru    '
select dbo.TRIM(@s)

答案 1 :(得分:16)

//use RTrim instead of Trim sql 2008

RTRIM(columnName)方法

像这样

select RTrim(a.ContactName) + ' ' + RTrim(a.City) as Name_City from customers as a

答案 2 :(得分:11)

declare @s varchar(25)
set @s = '      Amru    '
select RTRIM(LTRIM(@s))  

您也可以在没有架构的情况下使用这种方式:)

答案 3 :(得分:0)

SQL Server尝试将TRIM解析为内置函数。要调用用户定义的函数,您应该将模式前缀放在函数调用的前面。尝试类似:

declare @s varchar(25)
set @s = '      Amru      '
select dbo.TRIM(@s)

由于dbo是默认架构前缀。

如果要更改架构,请按以下方式声明该函数:(注意函数名前面的架构前缀)

create function dbo.TRIM(@data varchar(20)) returns varchar(100)
as
begin
   --function body
end

答案 4 :(得分:-4)

错误是“TRIM”不是SQL Server中的内置函数(如错误消息所示:))

您可以使用LTRIM和RTRIM来包装它,也可以创建自己的TRIM函数来执行相同操作。