本機內聯表值函式
本機編譯的表值函式返回表作為結果。本機編譯函式中的程式碼將轉換為 C 程式碼並編譯為 dll。版本 2016 中僅支援內聯表值函式。要建立本機表值函式,你需要:
- 使用標準的 CREATE FUNCTION 語法
- 在函式定義中設定 NATIVE_COMPILATION 選項
- 在函式定義中使用 SCHEMABINDING 選項
而不是標準的 BEGIN END 塊,你需要使用 BEGIN ATOMIC 塊:
BEGIN ATOMIC
WITH (TRANSACTION ISOLATION LEVEL=SNAPSHOT, LANGUAGE='us_english')
-- T-Sql code goes here
END
例:
CREATE FUNCTION [dbo].[udft_NativeGetBusinessDoc]
(
@RunDate VARCHAR(25)
)
RETURNS TABLE
WITH SCHEMABINDING,
NATIVE_COMPILATION
AS
RETURN
(
SELECT BusinessDocNo,
ProductCode,
UnitID,
ReasonID,
PriceID,
RunDate,
ReturnPercent,
Qty,
RewardAmount,
ModifyDate,
UserID
FROM dbo.[BusinessDocDetail_11]
WHERE RunDate >= @RunDate
);