Sql-Server
將 ddl 觸發器與記憶體表一起使用
我創建了伺服器範圍 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 觸發器。