sqlserver创建函数后提示对象名无效

今天同事遇到了个问题记录下
创建语句如下


IF OBJECT_ID('GET_NUMBER2') IS NOT NULL
DROP FUNCTION GET_NUMBER2

use ZLN_ZFS_CRM
GO
create function get_number2(@s varchar(100)) 
returns varchar(100)
as
begin
  while patindex('%[^0-9]%',@s) > 0
  begin
    set @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')
  end
  return @s
end
go
--测试
PRINT GET_NUMBER('2012中国China1949bj')
GO


sqlserver写了个函数 主要是用于筛选出字段中的数字
如图函数已经创建成功了
在这里插入图片描述
同事使用这种方法调用函数
select * from get_number2(‘2012中国China1949bj’)
报错信息是
消息 208,级别 16,状态 3,第 1 行
对象名 ‘get_number2’ 无效。

因为这是一个标量函数并不是表值函数所以我们应该是这么调用的
select get_number2(‘2012中国China1949bj’)
但是报错
消息 195,级别 15,状态 10,第 1 行
‘get_number2’ 不是可以识别的 内置函数名称。

最后是要以数据库名+dbo+函数名开始调用
select ZLN_ZFS_CRM.dbo.get_number2(‘2012中国China1949bj’)

展开阅读全文
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值