如何在sql中启动用户过程



我有一个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即可。

最新更新