sqlserver自定義函數(標量值函數,表值函數)


用戶自定義的函數有兩類:表值函數、標量值函數。

 

表值函數:返回值是數據表的函數 調用方式 select  b.*  from tableA a accross apply Fun_BiaoZhiFun(taskid) b 

用戶定義表值函數返回 table 數據類型,表是單個 SELECT 語句的結果集。

(1)只能返回Table,returns后邊一定是table

(2)as后面沒有begin/end,只有一個return語句返回特定的記錄

對於多語句表值函數,在 BEGIN...END 語句塊中定義的函數體包含一系列 Transact-SQL 語句,這些語句可生成行並將其插入將返回的表中。

(1)returns后面直接定義返回的表類型,首先是定義表名,表明前面要加@,然后是關鍵字TABLE,最后是表的結構。(實質上是定義了一個表變量)

(2)在begin/end語句塊中,直接將需要返回的結果insert到returns定義的表中就可以了,在最后return時,會將結果返回。

(3)最后只需要return,return后面不跟任何變量。(返回的是表變量里面的數據)

 

標量值函數:返回值是單個值的函數  .函數的調用方式 select  dbo.Fun_BiaoLiangZhiFun(taskid)  from  sys_inst_prcs where taskid='';

 

(1)必須使用兩部分組成函數的名字來調用函數,即所有者.對象名,如dbo.F3_GetMax(2,3)

(2)所有的傳入參數前必須加@

(3)不要寫漏和寫錯關鍵字,如as,returns,return

(4)returns后面不是跟一個變量,而是跟變量的返回值類型

(5)在begin/end語句塊中,使用的是return


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM