本機編譯的儲存過程
在使用本機編譯的過程中,T-SQL 程式碼被編譯為 dll 並作為本機 C 程式碼執行。要建立 Native Compiled 儲存過程,你需要:
- 使用標準的 CREATE PROCEDURE 語法
- 在儲存過程定義中設定 NATIVE_COMPILATION 選項
- 在儲存過程定義中使用 SCHEMABINDING 選項
- 在儲存過程定義中定義 EXECUTE AS OWNER 選項
而不是標準的 BEGIN END 塊,你需要使用 BEGIN ATOMIC 塊:
BEGIN ATOMIC
WITH (TRANSACTION ISOLATION LEVEL=SNAPSHOT, LANGUAGE='us_english')
-- T-Sql code goes here
END
例:
CREATE PROCEDURE usp_LoadMemOptTable (@maxRows INT, @FullName NVARCHAR(200))
WITH
NATIVE_COMPILATION,
SCHEMABINDING,
EXECUTE AS OWNER
AS
BEGIN ATOMIC
WITH (TRANSACTION ISOLATION LEVEL=SNAPSHOT, LANGUAGE='us_english')
DECLARE @i INT = 1
WHILE @i <= @maxRows
BEGIN
INSERT INTO dbo.MemOptTable3 VALUES(@i, @FullName, GETDATE())
SET @i = @i+1
END
END
GO