• 三个SQL Server 数据库触发器的例子[原创]


    之前搞软件都是用Oracle的数据库,前段时间给其他部门做的一个文档管理系统,用的是SQL Server 2000的数据库,跟Oracle有些区别。

    下面是两个SQL 2000的触发器的例子!

    说明:

    Add User的作用:当添加一个用户时自动添加用户信息页面!

    Delete User的作用:当删除一个用户时,所有该用户相关的用户规则均会被删除

    Delete Function的作用:当删除一项系统功能时自动清除用户规则中所有与该规则相关的记录

    1 --Add User
    2  If Exists(Select Name From sysobjects Where Name='AddUserInfoPage' And Type='TR')
    3  Drop Trigger AddUserInfoPage
    4  GO
    5
    6 Create Trigger AddUserInfoPage on Users
    7 for Insert
    8 as
    9 Declare @UserID Int
    10 Declare @FunctionID Int
    11 If Exists(Select * From Functions Where FunctionPage='UserPanel.aspx')
    12 Begin
    13 Select @UserID=[ID] From Inserted
    14 Select @FunctionID= [ID] From Functions Where FunctionPage='UserPanel.aspx'
    15 Insert Into UserRoles(UserId,FunctionID,[Description]) Values(@UserID,@FunctionID,'用户信息')
    16 End
    17 GO
    18
    19 --Delete User
    20 If Exists(Select Name From sysobjects Where Name='DeleteUserFunctions' And Type='TR')
    21 Drop Trigger DeleteUserFunctions
    22 GO
    23
    24 Create Trigger DeleteUserFunctions on Users
    25 After Delete
    26 as
    27 Declare @UserID Int
    28 If Exists(Select * From UserRoles Where UserID=(Select [ID] From Deleted))
    29 Begin
    30 Select @UserID=[ID] From Deleted
    31 Delete From UserRoles Where UserID=@UserID
    32 End
    33 GO
    34
    35 --Delete Function
    36 If Exists(Select Name From sysobjects Where Name='DeleteFunction' And Type='TR')
    37 Drop Trigger DeleteFunction
    38 GO
    39
    40 Create Trigger DeleteFunction on Functions
    41 After Delete
    42 as
    43 Declare @FunctionID Int
    44 If Exists(Select * From UserRoles Where FunctionID=(Select [ID] From Deleted))
    45 Begin
    46 Select @FunctionID=[ID] From Deleted
    47 Delete From UserRoles Where FunctionID=@FunctionID
    48 End
    49 GO
    50
  • 相关阅读:
    程序运行时被用户删除了工作目录后崩溃
    const引用与非const引用
    NDKr10的各种BUG
    《区块链100问》第64集:区块链分叉是什么?
    《区块链100问》第65集:比特币生孩子了
    《区块链100问》第66集:软分叉和硬分叉是什么?
    《区块链100问》第67集:重放攻击是什么?
    《区块链100问》第68集:硬分叉之以太经典
    《区块链100问》第69集:区块链项目的分类和应用
    《区块链100问》第70集:区块链项目之币类
  • 原文地址:https://www.cnblogs.com/mic86/p/1803705.html
Copyright © 2020-2023  润新知