Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql中启动用户过程?_Sql_Sql Server - Fatal编程技术网

如何在sql中启动用户过程?

如何在sql中启动用户过程?,sql,sql-server,Sql,Sql Server,我有一个需要执行的SQL Server函数。但是我试着通过select,exec调用它,它抛出了一个错误。如何修复该bug并启动该功能 程序代码 create or alter function mergetext (@TitleOfCourtesy text, @FirstName text, @LastName text) returns varchar(255) as begin return concat(@TitleOfCourtesy, ' '

我有一个需要执行的SQL Server函数。但是我试着通过select,exec调用它,它抛出了一个错误。如何修复该bug并启动该功能

程序代码

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,级别15,状态1,程序合并文本,第12行[批处理起始行0]
关键字“select”附近的语法不正确

Msg 195,级别15,状态10,程序合并文本,第12行[批处理起始行0]
“mergetext”不是可识别的内置函数名

首先,这不是。这是一个好主意。 其次,该类型已弃用,不应使用。 然后,您需要使用
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

调用SQL Server函数时,需要包含模式。如果在创建函数时未指定模式,则使用默认模式(可能是dbo)创建函数。因此,请尝试调用该函数,以便:
选择dbo.mergetext('a','b','c')

在过程定义后添加
GO
。或者将它们作为单独的批次运行。是否确实要添加三个
text
值以形成
varchar(255)
ntext
text
数据类型将在SQL Server的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。改用
nvarchar(max)
varchar(max)
。不,它不起作用。此代码抛出Msg 195,级别15,状态10,过程mergetext,第12行[批处理开始行0]“mergetext”不是可识别的内置函数名。error@who_am_i只需像这样指定模式
select dbo.mergetext('a','b','c')