除了使用系統提供的函數外,用戶還可以根據需要自定義函數。用戶自定義函數(user defined functions)是sql server 2000 新增的數據庫對象,是sql server 的一大改進。 用戶自定義函數不能用于執行一系列改變數據庫狀態的操作,但它可以像系統函數一樣在查詢或存儲過程等的程序段中使用,也可以像存儲過程一樣通過execute 命令來執行。用戶自定義函數中存儲了一個transact-sql 例程,可以返回一定的值。 在sql server 2000 中根據函數返回值形式的不同將用戶自定義函數分為三種類型:
(4) 用enterprise manager 創建用戶自定義函數 用enterprise manager 創建用戶自定義函數的方法是:在enterprise manager 中選擇要創建用戶自定義函數的數據庫。在數據庫對象“user defined functions” 上單擊右鍵,從開始菜單中選擇“new user defined function” 選項,就會出現如圖13-4 所示的定義用戶自定義函數屬性對話框。可以在其中指定要定義的函數的名稱,并編輯函數的腳本。單擊“ok”按鈕,則添加用戶自定義函數對象到數據庫中。 圖13-4 定義用戶自定義函數屬性對話框
13.13.2 修改和刪除用戶自定義函數 在enterprise manager 中選擇要進行改動的用戶自定義函數,單擊右鍵從快捷菜單中選擇“屬性”選項,則會出現與圖13-4 類似的修改用戶自定義函數結構對話框。可以修改用戶自定義函數的函數體、參數等。從快捷菜單中選擇“刪除”選項,則可刪除用戶自定義函數。 用alter function 命令也可以修改用戶自定義函數。此命令的語法與createfunction 相同,因此使用alter function 命令其實相當于重建了一個同名的函數,用起來不大方便。 另外,可以用drop function 命令刪除用戶自定義函數,其語法如下: drop function { [ owner_name. ] function_name } [ ,...n ] 例13-22: 刪除用戶自定義函數chiefinfo drop function chiefinfo
本章小結 本章主要介紹了sql server 中極為重要的兩個概念:游標和視圖,游標最為突出的貢獻在于其實現了對結果的行操作,從而可以在應用程序中對同一結果集施加不同的數據操作,在面向集合的數據庫管理系統和面向行的程序設計兩者之間架起了“溝通”的橋梁,實現了兩個數據處理方式的自由交流。視圖作為一個查詢結果集雖然仍與表具有相似的結構,但它是一張虛表,以視圖結構顯示在用戶面前的數據并不是以視圖的結構存儲在數據庫中,而是存儲在視圖所引用的基本表當中。視圖的存在為保障數據庫的安全性提供了新手段。除此之外,讀者從本章中也可以了解到sql server 2000 新增的“用戶自定義函數”的創建和使用。