我创建了简单的功能
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.
有人可以帮我找到问题吗?
答案 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函数来执行相同操作。