zoukankan      html  css  js  c++  java
  • 两个表 触发器 冲突

    两个表之间互相插入与删除记录

    我把触发器记录一下,哈哈。首次学,首次写。

    对[dbo].[DNN_Roles]表的插入与删除之后进行操作
    create TRIGGER Trigger_DNN_UNIRMS_ADDROLES
       ON  [dbo].[DNN_Roles]
       for INSERT
    AS
    BEGIN   
        declare @RoleName as VARCHAR(256)
        select @RoleName=RoleName from INSERTED
        exec [dbo].[aspnet_Roles_CreateRole] "DotNetNuke",@RoleName 
    END

    create TRIGGER [dbo].[Trigger_DNN_UNIRMS_DELETEROLES]
       ON  [dbo].[DNN_Roles]
       for delete
    AS
    BEGIN   
        declare @RoleName as VARCHAR(256)
        select @RoleName=RoleName from deleted
        exec [dbo].[aspnet_Roles_DeleteRole] "DotNetNuke",@RoleName,1
    END

    对[dbo].[aspnet_Roles]表的插入与删除之后进行操作:

    create TRIGGER Trigger_UNIRMS_DNN_ADDROLES
       ON  [dbo].[aspnet_Roles]
       for insert
    AS
    BEGIN   
        declare @RoleName2 as nvarchar(256)
        select @RoleName2=RoleName from inserted
        exec dbo.DNN_AddRole 0,NULL,@RoleName2,'','$0.0000',1,'N','$0.0000',1,'N',0,0,'',''
    END

    create TRIGGER [dbo].[Trigger_UNIRMS_DNN_DELETEROLES]
       ON  [dbo].[aspnet_Roles]
       for delete
    AS
    BEGIN   
        declare @RoleId as int
        declare @RoleName as VARCHAR(256)

        select @RoleName=RoleName from deleted
        select @RoleId=RoleId from DNN_Roles where RoleName=@RoleName

        exec [dbo].[DNN_DeleteRole] @RoleId
    END

    执行后会出现冲突问题,也就是递归的问题。
    我把数据库的服务器设置一下就好了。
    右击服务器属性->高级->杂项(右边窗口)->允许触发器激发其他触发器 设置成False






  • 相关阅读:
    ZOJ 3332 Strange Country II
    ZOJ 3331 Process the Tasks(双塔DP)
    ZOJ 3326 An Awful Problem(模拟)
    HDU 1796 How many integers can you find(容斥原理)
    HDU 4059 The Boss on Mars(容斥原理)
    HDU 4135 Co-prime(容斥原理)
    HDU 5677 ztr loves substring(回文串加多重背包)
    CodeForces 668B Little Artem and Dance
    CodeForces 667A Pouring Rain
    Java实现 LeetCode 764 最大加号标志(暴力递推)
  • 原文地址:https://www.cnblogs.com/ajaxleoxu/p/903079.html
Copyright © 2011-2022 走看看