博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
触发器
阅读量:7016 次
发布时间:2019-06-28

本文共 1942 字,大约阅读时间需要 6 分钟。

-----------------触发器----------------

触发器 分为 事前触发器 和事后触发器

/*
--创建触发器
语法:
CREATE TRIGGER 触发器的名称 ON 目标的名称
 FOR 针对表的哪一个操作,如:INSERT/UPDATE.. AS
BEGIN
    --触发的事件     
    PRINT ‘水电费发生’
END
*/
-------使用NETBERDB----------
USE NetBarDB
go
IF EXISTS (SELECT * FROM SYS.SYSOBJECTS WHERE NAME='TR_INSERT_RECORDINFO')
DROP TRIGGER TR_INSERT_RECORDINFO
GO
--新建TRIGGER
CREATE TRIGGER TR_INSERT_RECORDINFO
ON RECORDINFO FOR INSERT AS
BEGIN
    --定义变量用于存储会员号、卡号、电脑编号
    DECLARE @CARDID INT
    DECLARE @PCID INT
    DECLARE @CARDNUMBER CHAR(10)
    --从INSERTED表中获取插入的记录,包括电脑编号 卡号
    SELECT @PCID=PCID,@CARDID=CARDID FROM INSERTED
    --根据电脑编号修改使用的使用状态
    UPDATE PCINFO SET PCUSE =1 WHERE PCID=@PCID
    --根据编号查询会员号    
    select @PCId from cardInfo where cardId=@cardId
    --显示上机成功
    print '上机成功'
END
go
set nocount on--不显示T-sql语句影响的行数
declare @cardId int --声明卡的编号
select @cardId = CardId from cardInfo where CardNumber='023-001'
insert into recordInfo (cardId ,PCId ,beginTime ) values (@cardId ,1,GETDATE())
select * from recordInfo
select * from PCInfo
------------------delate 的触发器----------------------------------------------
use NetBarDB
go
if exists (select*from sys.sysobjects where name ='tr_delect_recordInfo')
    drop trigger tr_delect_recordInfo
go
create trigger tr_delect_recordInfo
    on recordInfo for delete as  
    print '开始备份RecordInfo数据'
    if exists (select *from sys.sysobjects where name='backRecordInfo')
        insert into backRecordInfo select * from deleted
    else
        select * into backRecordInfo from deleted
    print 'backRecordInfo 表备份数据成功,备份数据为'
    select * from backRecordInfo
go
-----------------
--c测试delete 触发器
delete from recordInfo  
select *from recordInfo
-----------新建update-触发器---------------------
use NetBarDB
go
if exists(select * from sys.sysaltfiles where name ='tr_update_recordInfo')
    drop trigger tr_update_recordInfo
go
create trigger tr_update_recordInfo
on recordInfo for update as
    declare @reforePCId int
    declare @atforePCId int
    select  from deleted

转载于:https://www.cnblogs.com/cl1006/p/4331455.html

你可能感兴趣的文章
【转】OPPO A77保持应用后台运行方法
查看>>
Linux下*.tar.gz文件解压缩命令
查看>>
京都之行
查看>>
枚举NT系统用户
查看>>
任务,过程,和线程
查看>>
(原創) 令人期待的C# 3.0/LINQ (.NET) (C#)
查看>>
delphi 通过线程实现Windows服务
查看>>
育儿:自制身高仪和照片墙
查看>>
QT槽和信号机制介绍
查看>>
[例程]string.trim().length()的用法
查看>>
电子书下载:Microsoft Windows Identity Foundation Cookbook
查看>>
ORACLE修改表空间方法
查看>>
敏捷本质:价值驱动、拥抱变化
查看>>
TOGAF:企业信息化复杂吗?
查看>>
【Asp.Net使用EasyUI】EasyUI combox实现联动
查看>>
C盘空间不够,清除VS下的 Font Cache
查看>>
List 比较大小
查看>>
栈上数组,做了什么事?
查看>>
YU-GI-OH! POWER OF XLINQ [C#, XLINQ, XML]
查看>>
Android String 转 MD5
查看>>