我有一个SQL Server函数需要执行。但我试图通过select,exec调用它——它抛出了一个错误。如何修复该错误并启动该功能?
程序代码
create or alter function mergetext
(@TitleOfCourtesy text,
@FirstName text,
@LastName text)
returns varchar(255)
as
begin
return concat(@TitleOfCourtesy, ' ', @FirstName, ' ', @LastName)
end
select mergetext('a','b','c')
错误消息
Msg 156,Level 15,State 1,Procedure mergetext,Line 12[Batch Start Line 0]
关键字"select"附近的语法不正确。Msg 195,Level 15,State 10,Procedure mergetext,Line 12[Batch Start Line 0]
'mergetext'不是可识别的内置函数名。
调用SQL Server函数时,需要包含模式。如果在创建函数时没有指定模式,那么函数将使用默认模式(可能是dbo(创建。因此,请尝试调用函数So:SELECT dbo.mergetext('a','b','c')
首先,这不是过程。这是一个函数。其次,文本类型已弃用,不应使用。然后,您需要使用GO
、在单独的查询窗口中执行或只选择函数并按F5来分离对象的创建。
试试这个:
create or alter function mergetext(
@TitleOfCourtesy text,
@FirstName text,
@LastName text
)
returns varchar(255)
as
begin
return concat(@TitleOfCourtesy,' ',@FirstName,' ',@LastName)
end
GO
select dbo.mergetext('a','b','c')
最后,为什么要创建CONCAT
函数的包装器。只要在需要的地方使用CONCAT
即可。