日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

SQL Server 的三種自定義函數(shù)(用戶定義的函數(shù))

 張金富 2011-01-08

“自定義函數(shù)”是我們平常的說法,而“用戶定義的函數(shù)”是 SQL Server 中書面的說法。

SQL Server 2000 允許用戶創(chuàng)建自定義函數(shù),自定義函數(shù)可以有返回值。

自定義函數(shù)分為:標(biāo)量值函數(shù)或表值函數(shù)

  • 如果 RETURNS 子句指定一種標(biāo)量數(shù)據(jù)類型,則函數(shù)為標(biāo)量值函數(shù)??梢允褂枚鄺l Transact-SQL 語句定義標(biāo)量值函數(shù)。
  • 如果 RETURNS 子句指定 TABLE,則函數(shù)為表值函數(shù)。

表值函數(shù)又可分為:內(nèi)嵌表值函數(shù)(行內(nèi)函數(shù))或多語句函數(shù)

  • 如果 RETURNS 子句指定的 TABLE 不附帶列的列表,則該函數(shù)為內(nèi)嵌表值函數(shù)。
  • 如果 RETURNS 子句指定的 TABLE 類型帶有列及其數(shù)據(jù)類型,則該函數(shù)是多語句表值函數(shù)。

標(biāo)量值函數(shù)示例

CREATE FUNCTION dbo.Foo()
RETURNS int
AS 
BEGIN
    declare @n int
    select @n=3
    return @n
END

內(nèi)嵌表值函數(shù)示例

CREATE FUNCTION dbo.Foo()
RETURNS TABLE
AS 
    return select id, title from msgs

內(nèi)嵌表值函數(shù)只有一個(gè) select 語句。

多語句表值函數(shù)示例(部分)

CREATE FUNCTION fn_FindReports (@InEmpId nchar(5))
RETURNS @retFindReports TABLE (empid nchar(5) primary key,
   empname nvarchar(50) NOT NULL,
   mgrid nchar(5),
   title nvarchar(30))
...

注意其 RETURNS 部分。

多語句函數(shù)的主體中允許使用以下語句。未在下面的列表中列出的語句不能用在函數(shù)主體中。

  • 賦值語句。
  • 控制流語句。
  • DECLARE 語句,該語句定義函數(shù)局部的數(shù)據(jù)變量和游標(biāo)。
  • SELECT 語句,該語句包含帶有表達(dá)式的選擇列表,其中的表達(dá)式將值賦予函數(shù)的局部變量。
  • 游標(biāo)操作,該操作引用在函數(shù)中聲明、打開、關(guān)閉和釋放的局部游標(biāo)。只允許使用以 INTO 子句向局部變量賦值的 FETCH 語句;不允許使用將數(shù)據(jù)返回到客戶端的 FETCH 語句。
  • INSERT、UPDATE 和 DELETE 語句,這些語句修改函數(shù)的局部 table 變量。
  • EXECUTE 語句調(diào)用擴(kuò)展存儲(chǔ)過程。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多