zoukankan      html  css  js  c++  java
  • SQL Server 中 触发器 简单示例

    注意 对 inserted,deleted 的查询 使用
    -------------------------

    --当person表 新增 一条person记录时
    --将 该记录的主键personName 保存在changeTable表中
    USE TestDB
    IF EXISTS (SELECT name FROM sysobjects
          WHERE name = 'personInsert' AND type = 'TR')
       DROP TRIGGER personInsert
    GO
    CREATE TRIGGER personInsert
    ON person
    FOR INSERT
    AS

       INSERT INTO TestDB.dbo.changeTable
      (changeTableName, changeType, changeTablePK, changeTablePKValue)
      SELECT 'person','INSERT','personName',personName FROM INSERTED
    GO

    --当person表 修改 一条person记录时
    --将 该记录的主键personName 保存在changeTable表中

    USE TestDB
    IF EXISTS (SELECT name FROM sysobjects
          WHERE name = 'personUpdate' AND type = 'TR')
       DROP TRIGGER personUpdate
    GO
    CREATE TRIGGER personUpdate
    ON person
    FOR UPDATE
    AS

       INSERT INTO TestDB.dbo.changeTable
      (changeTableName, changeType, changeTablePK, changeTablePKValue)
      SELECT 'person','UPDATE','personName',personName FROM INSERTED
    GO

    --当person表 删除 一条person记录时
    --将 该记录的主键personName 保存在changeTable表中

    USE TestDB
    IF EXISTS (SELECT name FROM sysobjects
          WHERE name = 'personDelete' AND type = 'TR')
       DROP TRIGGER personDelete
    GO
    CREATE TRIGGER personUpdate
    ON person
    FOR DELETE
    AS

       INSERT INTO TestDB.dbo.changeTable
      (changeTableName, changeType, changeTablePK, changeTablePKValue)
      SELECT 'person','DELETE','personName',personName FROM DELETED
    GO

  • 相关阅读:
    读取Web.config文件中的配置信息类
    屏蔽页面中的右键操作
    树型目录
    自己常用的分页SQL
    c#用一个线程同步的简单例子

    c++面向对象学习
    数据上传项目总结
    简单的xml学习
    c#中跨线程使用控件
  • 原文地址:https://www.cnblogs.com/freeliver54/p/669050.html
Copyright © 2011-2022 走看看