13.2 用戶自定義函數(shù)
13.2.1 基本概念
1、 用戶定義函數(shù)可以擴(kuò)展數(shù)據(jù)操作的功能,它在概念上類似于一般的程序設(shè)計(jì)語(yǔ)言中定義的函數(shù)。
13.2.2 創(chuàng)建和調(diào)用標(biāo)量函數(shù)
標(biāo)量函數(shù)—返回單個(gè)數(shù)據(jù)值的函數(shù);
1、定義標(biāo)量函數(shù)
CREATE FUNCTION [擁有者名.] 函數(shù)名
([{@ 參數(shù)名[AS]標(biāo)量數(shù)據(jù)類型[=default]}[,…n]])
RETURNS 返回值類型
[AS]
BEGIN
函數(shù)體
RETURN 標(biāo)量表達(dá)式
END
(1) 同存儲(chǔ)過(guò)程一樣,函數(shù)的參數(shù)也可以有默認(rèn)值。
(2) 標(biāo)量表達(dá)式:指定標(biāo)量函數(shù)返回的標(biāo)量值。
2、 調(diào)用標(biāo)量函數(shù):
當(dāng)調(diào)用標(biāo)量函數(shù)時(shí),必須提供至少由兩部分組成的名稱:函數(shù)擁有者名和函數(shù)名。可在任何允許出現(xiàn)表達(dá)式的SQL語(yǔ)句中調(diào)用標(biāo)量函數(shù),只要類型一致;
13.2.3 創(chuàng)建和調(diào)用內(nèi)嵌表值函數(shù)
1、 創(chuàng)建內(nèi)嵌表值函數(shù),其語(yǔ)法為:
CREATE FUNCTION [擁有者名.] 函數(shù)名
([{@ 參數(shù)名[AS]標(biāo)量數(shù)據(jù)類型[=default]}[,…n]])
RETURNS 返回變量 TABLE <表定義>
[AS]
BEGIN
函數(shù)體
RETURN
END
<表定義>::=({列定義|表約束}[,…n])
2、調(diào)用多語(yǔ)句表值函數(shù)
多語(yǔ)句表值函數(shù)的返回值是一個(gè)表,因此對(duì)多語(yǔ)句表值函數(shù)的使用也是放在SELECT語(yǔ)句的FROM子句中。
13.3 觸發(fā)器
13.3.1 觸發(fā)器基本概念
1、 觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,其特殊性在于它不需要由用戶來(lái)調(diào)用,而是當(dāng)用戶對(duì)表中的數(shù)據(jù)進(jìn)行UPDATE、INSERT或DELETE操作時(shí)自動(dòng)觸發(fā)執(zhí)行;
2、 觸發(fā)器常用于下列場(chǎng)合:
(1) 完成比CHECK的約束更復(fù)雜的數(shù)據(jù)約束;
(2) 為保證數(shù)據(jù)庫(kù)性能而維護(hù)的非規(guī)范化數(shù)據(jù);
(3) 實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)規(guī)則,可使業(yè)務(wù)的處理任務(wù)自動(dòng)進(jìn)行。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題預(yù)告:名師解析2010年9月計(jì)算機(jī)等級(jí)考試試題答案
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |