自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL內(nèi)嵌用戶定義函數(shù)的功能

數(shù)據(jù)庫 SQL Server
內(nèi)嵌函數(shù)可用于實(shí)現(xiàn)參數(shù)化視圖的功能,下面就讓我們一起來了解一下SQL內(nèi)嵌用戶定義函數(shù)的使用,如果您您感興趣的話,不妨一看。

SQL內(nèi)嵌用戶定義函數(shù)在我們使用SQL數(shù)據(jù)庫中,用途很廣泛。下面就為您詳細(xì)介紹一些SQL內(nèi)嵌用戶定義函數(shù)方面的知識(shí),供您參考。

SQL內(nèi)嵌用戶定義函數(shù)
SQL內(nèi)嵌用戶定義函數(shù)是返回 table 的用戶定義函數(shù)的子集。內(nèi)嵌函數(shù)可用于實(shí)現(xiàn)參數(shù)化視圖的功能。

請(qǐng)看下面的視圖:

  1. CREATE VIEW vw_CustomerNamesInWA AS   
  2. SELECT CustomerID, CompanyName   
  3. FROM Northwind.dbo.Customers   
  4. WHERE Region = 'WA'  

可創(chuàng)建更通用的版本 vw_CustomerNamesInRegion,方法是將 WHERE Region = 'WA' 替換為 WHERE Region = @RegionParameter 并讓用戶指定感興趣的查看區(qū)域。然而,視圖不支持在 WHERE 子句中指定的搜索條件的參數(shù)。

內(nèi)嵌用戶定義函數(shù)可用于支持在 WHERE 子句中指定的搜索條件的參數(shù)。下面是使用戶得以在其選擇中指定區(qū)域的函數(shù)示例:

  1. CREATE FUNCTION fn_CustomerNamesInRegion   
  2. ( @RegionParameter nvarchar(30) )   
  3. RETURNS table   
  4. AS   
  5. RETURN (   
  6. SELECT CustomerID, CompanyName   
  7. FROM Northwind.dbo.Customers   
  8. WHERE Region = @RegionParameter   
  9. )   
  10. GO   
  11. -- Example of calling the function for a specific region   
  12. SELECT *   
  13. FROM fn_CustomerNamesInRegion(N'WA')   
  14. GO  

內(nèi)嵌用戶定義函數(shù)遵從以下規(guī)則:

RETURNS 子句僅包含關(guān)鍵字 table。不必定義返回變量的格式,因?yàn)樗?RETURN 子句中的 SELECT 語句的結(jié)果集的格式設(shè)置。

function_body 不由 BEGIN 和 END 分隔。

RETURN 子句在括號(hào)中包含單個(gè) SELECT 語句。SELECT 語句的結(jié)果集構(gòu)成函數(shù)所返回的表。內(nèi)嵌函數(shù)中使用的 SELECT 語句受到與視圖中使用的 SELECT 語句相同的限制。

內(nèi)嵌函數(shù)還可用于提高索引視圖的能力。索引視圖自身不能在其 WHERE 子句搜索條件中使用參數(shù),針對(duì)特定用戶的需要調(diào)整存儲(chǔ)的結(jié)果集。然而,可定義存儲(chǔ)與視圖匹配的完整數(shù)據(jù)集的索引視圖,然后在包含允許用戶調(diào)整其結(jié)果的參數(shù)化搜索條件的索引視圖上定義內(nèi)嵌函數(shù)。如果視圖定義較復(fù)雜,則生成結(jié)果集所要執(zhí)行的大多數(shù)工作都涉及在視圖上創(chuàng)建聚集索引時(shí)生成聚合或聯(lián)接多個(gè)表。之后如果創(chuàng)建引用視圖的內(nèi)嵌函數(shù),則該函數(shù)可應(yīng)用用戶的參數(shù)化篩選,從結(jié)果集中提取由 CREATE INDEX 語句生成的特定行。在執(zhí)行 CREATE INDEX 時(shí)復(fù)雜的聚合和聯(lián)接進(jìn)行一次,隨后引用內(nèi)嵌函數(shù)的所有查詢都從簡(jiǎn)化的存儲(chǔ)結(jié)果集中篩選行。例如:

定義將所有銷售數(shù)據(jù)聚合到結(jié)果集的視圖 vw_QuarterlySales,該結(jié)果集按季度報(bào)告所有商店的匯總銷售數(shù)據(jù)。

在vw_QuarterlySales上創(chuàng)建聚集索引以具體化包含匯總數(shù)據(jù)的結(jié)果集。

創(chuàng)建篩選匯總數(shù)據(jù)的內(nèi)嵌函數(shù):

  1. CREATE FUNCTION fn_QuarterlySalesByStore   
  2. (   
  3. @StoreID int   
  4. )   
  5. RETURNS table   
  6. AS   
  7. RETURN (   
  8. SELECT *   
  9. FROM SalesDB.dbo.vw_QuarterlySales   
  10. WHERE StoreID = @StoreID   
  11. )  

然后用戶可從內(nèi)嵌函數(shù)進(jìn)行選擇以獲得其特定商店的數(shù)據(jù):

  1. SELECT *   
  2. FROM fn_QuarterlySalesByStore( 14432 )  

滿足在第4步發(fā)出的查詢所需的大多數(shù)工作將按季度聚合銷售數(shù)據(jù)。該工作在第2步進(jìn)行一次。第4步中的每個(gè) SELECT 語句都使用函數(shù) fn_QuarterlySalesByStore 篩選出用戶的某個(gè)商店特有的聚合數(shù)據(jù)。

 

 

 

【編輯推薦】

SQL Server排序規(guī)則的應(yīng)用

SQL Server內(nèi)連接和外連接的區(qū)別

判斷表中是否存在SQL自增列

SQL嵌套SELECT語句的用法

SQL Server UPDATE語句的用法

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-07-09 10:08:53

SQL Server函

2009-09-09 13:39:05

Linq用戶定義函數(shù)

2010-08-31 16:13:40

DB2SQL函數(shù)

2010-10-20 16:07:48

SQL用戶自定義角色

2010-09-14 16:47:23

SQL自定義函數(shù)

2010-09-14 16:59:39

SQL自定義函數(shù)

2012-07-17 09:41:20

OfficeSkype

2010-09-06 15:41:34

SQL函數(shù)存儲(chǔ)過程

2010-07-01 14:11:40

SQL Server內(nèi)

2011-07-25 10:40:47

SQL Server用戶自定義函數(shù)臨時(shí)表

2010-06-17 11:02:27

SQL Server

2015-06-12 09:28:39

思科傳感器威脅防護(hù)

2009-07-29 17:49:05

ibmdwVim

2010-09-16 09:15:59

SQL函數(shù)

2011-08-05 11:04:27

iOS 5蘋果

2010-07-06 09:49:56

SQL Server

2010-09-09 11:23:17

SQL函數(shù)格式

2010-10-29 16:22:37

SQL存儲(chǔ)過程

2023-08-11 09:16:14

2009-11-30 14:27:42

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)