zoukankan      html  css  js  c++  java
  • SQL Server -使用表触发器记录表插入,更新,删除行数

    1、如何使用sql获取当前session用户名和机器名

    Select CURRENT_USER,Host_name()

    2、如何在表触发器中获取当前表名称

    SELECT OBJECT_SCHEMA_NAME(parent_id)+'.'+OBJECT_NAME(parent_id) FROM sys.triggers

    触发器完整代码

    ALTER TRIGGER dbo.DimTest_AdutitTriger ON dbo.DimTest AFTER INSERT,DELETE,UPDATE

    AS 

    BEGIN

                SET NOCOUNT ON;

               declare @tbName varchar(256)

                SELECT @tbName='dbo.DimTest'

                DECLARE @action as varchar(20),@Count int=0;

    SET @action='INSERT';

    IF EXISTS(SELECT *FROM DELETED)

    BEGIN

              SET @action=

                      CASE

                               WHEN EXISTS(SELECT * FROM INSERTED) THEN 'UPDATE'

                                ELSE 'DELETE'

                        END

     END

    ELSE

             IF NOT EXISTS(SELECT *FROM INSERTED)RETURN;

                        IF(@action='INSERT' or @action='UPDATE')

                        BEGIN 

                                    set @Count=(select count(*) from INSERTED)

                        END

                        IF @action='DELETE'

                         BEGIN

                                      set @Count=(select count(*) from INSERTED)

                         END

                         IF @action='DELETE'

                          BEGIN

                                         set @Count=(select count(*) from DELETED)

                          END

                           insert into db0.AuditTable

                            select getdate(),CURRENT_USER,Host_name(),null,@tbName,'dim',@action,@Count

    END

    GO

  • 相关阅读:
    一个简单粗暴的爬虫
    Linux 目录结构
    python 部署 Restful web
    JVM 运行时数据区总结 栈 堆 堆大小配置总结
    成都法律援助申请流程
    JavaEE error整理(不断更新)
    ehcache.xml 属性大全
    SpringMVC 构建Restful风格 及问题处理
    Http Content-Type
    Redis 教程 Java工程师学习知识点
  • 原文地址:https://www.cnblogs.com/zzp0320/p/7080848.html
Copyright © 2011-2022 走看看