在 SQL Server 2000 中建立自訂函數後,於預存程序中呼叫時出現錯誤:
無法辨識的函數名 'fnQuy_VQuotationText'
經確認函數確實存在且拼寫正確,但仍無法識別。
呼叫自訂函數時未加上擁有者結構描述前置詞(Schema Prefix)。SQL Server 2000 預設結構描述為 dbo,若呼叫時未指定,解析器可能無法正確解析函數位置。
在函數名稱前加上 dbo. 前置詞:
-- 錯誤寫法
SELECT fnQuy_VQuotationText(QueryDetail.QueryDetailID) FROM ...
-- 正確寫法
SELECT dbo.fnQuy_VQuotationText(QueryDetail.QueryDetailID) FROM ...
dbo.),提升解析效能並避免歧義。CREATE FUNCTION dbo.fnName ...。這是一個極常見的疏忽,养成加上 dbo. 的習慣可節省大量除錯時間。