本機編譯的標量函式

本機編譯函式中的程式碼將轉換為 C 程式碼並編譯為 dll。要建立 Native Compiled 標量函式,你需要:

  • 使用標準的 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].[udfMultiply]( @v1 int, @v2 int )   
RETURNS bigint 
WITH NATIVE_COMPILATION, SCHEMABINDING  
AS   
BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'English')  
  
    DECLARE @ReturnValue bigint;  
    SET @ReturnValue = @v1 * @v2;         
  
    RETURN (@ReturnValue);    
END 

-- usage sample:
SELECT dbo.udfMultiply(10, 12)