Mic*_*vko 3 sql-server in-memory-database sql-server-2014 memory-optimized-tables
我创建了服务器范围 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.
Run Code Online (Sandbox Code Playgroud)
我可以创建 ddl 触发器来忽略对内存表的操作吗?
不,启用了内存中 OLTP 的数据库不支持 DDL 触发器。
内存中 OLTP 表和本机编译的模块不支持数据库级和服务器级 DDL 触发器。
您不能在启用了内存中 OLTP 的数据库中创建 DDL 触发器,因为运行触发器所需的代码路径会干扰内存中功能。解决方法是将所有内存中 OLTP 表放在一个没有 DDL 触发器的单个数据库中,并将其余表放在一个单独的数据库中,而没有内存优化表,并在那里启用 DDL 触发器。