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’)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章