Sql-Server

將 ddl 觸發器與記憶體表一起使用

  • January 13, 2016

我創建了伺服器範圍 ddl 觸發器來審核伺服器上的使用者活動。

現在,如果有人嘗試創建記憶體表,則該語句將失敗並出現以下錯誤:

Error SQL72014: .Net SqlClient Data Provider: Msg 12332, Level 16, State 107,
Line 1 Database and server triggers on DDL statements DROP and CREATE are not
supported with memory optimized tables.

我可以創建忽略記憶體表操作的 ddl 觸發器嗎?

不,啟用記憶體中 OLTP 的數據庫不支持 DDL 觸發器

In-Memory OLTP 表和本機編譯的模組不支持數據庫級和伺服器級 DDL 觸發器。

您不能在啟用了 In-Memory OLTP 的數據庫中創建 DDL 觸發器,因為執行觸發器所需的程式碼路徑會干擾 In-Memory 功能。解決方法是將所有 In-Memory OLTP 表放入沒有 DDL 觸發器的單個數據庫中,將其餘表放入沒有記憶體優化表的單獨數據庫中,並在那裡啟用 DDL 觸發器。

引用自:https://dba.stackexchange.com/questions/125999