SQL Server中的使用者自訂函數

來源:互聯網
上載者:User

SQL Server中的使用者自訂函數

使用者自訂函數(UDF:User Defined Functions)的定義:

同預存程序類似,使用者自訂函數是一組有序的T-SQL語句,UDF被預先最佳化和編譯並且可以作為一個單元來進行調試。UDF和預存程序的主要區別在於返回結果的方式。為了能支援多種不同的返回值,UDF比預存程序有更多的限制。

UDF的兩種類型:

1.      返回標量值的UDF

2.      返回表的UDF

函數的確定性:

確定性指的是,返回的結果是確定的;或者說在未改變什麼的情況下,使用同一個函數,在同樣的條件下,返回的值是不會改變的。

UDF可以是確定性也可以是非確定性。

當UDF需要達到確定性要求時,需要滿足的4個條件:

1.      函數必須是模式綁定的。這意味著函數所依賴的任何對象會有一個依賴記錄,並且在沒有刪除這個依賴的函數之前都不允許改變這個對象。

2.      函數引用的所有其他函數,無論其是使用者定義的還是系統定義的,都必須是確定的。

3.      不能引用在函數外部定義的表(可以使用表變數和暫存資料表,只要它們是在函數範圍內定義的就行)。

4.      不能使用擴充預存程序。

函數確定性檢查:

Select objectproperty(Object_id(‘函數名’), ’IsDeterministic’);




相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.