【问题标题】:Database and server triggers on DDL statements CREATE, ALTER and DROP are not supported with memory optimized tables内存优化表不支持 DDL 语句 CREATE、ALTER 和 DROP 上的数据库和服务器触发器
【发布时间】:2017-02-15 21:47:07
【问题描述】:

当我尝试删除内存优化表时出现此错误。我正在使用 sql server 2016 sp1

内存优化表不支持 DDL 语句 CREATE、ALTER 和 DROP 上的数据库和服务器触发器。

我已删除 sec 策略和 2nd 索引。我不能删除 spidfilter,因为你必须有 1 个 MOT 索引。只是看看这是否有所作为。它没有。

代码如下:

create table dbo.MOT_tmpTableName
    (
    Col1    int, 
    Col2    int,
    Col3    smalldatetime,
    Col4    smalldatetime,
    Col5    varchar(25),
    Col6    date, 
    Col7    smallint, 
    Col8    smallint,
    Col9    smallint,
    Col10    smallint,

    SpidFilter          smallint    not null   DEFAULT (@@spid),  

    index nIX_SpidFilter nonclustered (SpidFilter),  
    index nIX_Col1_Col2_Col3 nonclustered (Col1, Col2, Col3),

    CONSTRAINT CHK_MOT_tmpTableName_SpidFilter  
        CHECK ( SpidFilter = @@spid ),  
)  
WITH  
    (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_ONLY);  
go  


create security policy dbo.MOT_tmpTableName_SpidFilter_Policy  
    ADD FILTER PREDICATE dbo.fn_SpidFilter(SpidFilter)  ON dbo.MOT_tmpTableName
    WITH (STATE = ON);  
go

我已经问过,其他环境没有这个问题。我无法忘记“数据库和服务器触发器......”。触发什么触发器导致错误?

【问题讨论】:

    标签: sql sql-server-2016


    【解决方案1】:

    您的数据库或服务器中可能有 DDL 触发器处于活动状态。

    如果您使用的是 SQL Server Managment studio,可以在“Databases”->“Database_name”->“Programmability”->“Database triggers”文件夹下找到数据库触发器和“Server objects”->“Triggers” " 对象资源管理器中的文件夹。

    纯 t-SQL 搜索:

    SELECT
      *
    FROM
      database_name.sys.triggers AS T
    WHERE
      T.parent_class = 0;
    
    SELECT
      *
    FROM
      sys.server_triggers AS ST;
    

    【讨论】:

      【解决方案2】:

      不,In-Memory OLTP enabled do not support DDL triggers. 的数据库

      In-Memory OLTP 表和本机编译的模块不支持数据库级和服务器级 DDL 触发器。

      您不能在启用了 In-Memory OLTP 的数据库中创建 DDL 触发器,因为运行触发器所需的代码路径会干扰 In-Memory 功能。解决方法是将所有 In-Memory OLTP 表放入一个没有 DDL 触发器的数据库中,将其余表放入一个没有内存优化表的单独数据库中,并在那里启用 DDL 触发器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-23
        • 2018-03-16
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        • 1970-01-01
        相关资源
        最近更新 更多