Sql-Server
試圖編寫一個不需要 dbo 的函式。字首
我正在嘗試編寫一個簡單的系統函式,以便
dbo.
訪問該函式不需要前綴。我為 SQL Server 2000 找到了一個範例,但是當我執行時EXEC SP_CONFIGURE 'ALLOW UPDATES', 1 RECONFIGURE WITH OVERRIDE go create function system_function_schema.trim (@input varchar(max)) returns varchar(max) as begin declare @result varchar(max) select @result = rtrim(ltrim(@input)) return @result end go EXEC SP_CONFIGURE 'ALLOW UPDATES', 0 RECONFIGURE WITH OVERRIDE
這是拋出的錯誤。
指定的模式名稱“system_function_schema”要麼不存在,要麼您沒有使用它的權限。嚴重性 16
預期的用法是
select trim(' padded value ')
有誰知道我應該採用的方法,或者我是否必須將其創建為必須使用
dbo.
類似呼叫的正常使用者定義函式:select dbo.trim(' padded value ')
在 SQL 2000 中使用 system_function_schema 是一個未記錄且不受支持的過程。從 SQL 2005 開始,它不再可能。
根據設計,UDF 要求在函式呼叫中包含模式。
有一個例外:像過程一樣呼叫函式實際上並不需要模式,但也不會對您的函式非常有用。
exec trim @input = ' foo '
此外,一定要仔細測試帶有標量函式的查詢——它們會對性能產生重大影響。