sql Server 触发器入门代码~~

--Sql Server
--触发器通过一个事件来触发,运行
--支持三种触发器,插入,更新,删除
--两个虚拟的测试表 inserted,deleted

--插入的触发器 使用 inserted表
--删除的触发器 使用 deleted表
--更新的触发器 使用 两张表
use study

--创建表member
create table member
(
 m_no varchar(20) primary key ,
 m_name varchar(30)
)
--insert触发器
--判断是不是97级的
alter trigger S_insert
on member
for insert
as
declare @m_no varchar(20)

select @m_no=m_no from inserted
if (left(@m_no,2)!='97')
 begin
 rollback tran
 raiserror('输入的学号d%不是97级的学生',16,1,@m_no)
end

insert into member values('123','way')

insert into member values('9701','way')
insert into member values('9702','way')
insert into member values('9703','way')

--删除触发器
--当删除的记录数大于一行时 取消删除
create trigger S_delete
on member
for delete
as
declare @rowcount int
select @rowcount=@@rowcount
if @rowcount>1
begin
 rollback tran
 raiserror('当前要删除的记录数为d%,一次只允许删除一条记录',16,1,@rowcount)
end

delete from member where m_name='way'
--演示delete触发器的备份作用
create trigger S_update
on member
for update
as
declare @rowcount int
select @rowcount=@@rowcount
if (@rowcount)

--instead of 触发器
--测试如何通过视图向多表插入数据
--stu97
--stu98
--stu99

create view Stu_View
as
select * from stu97
union all
select * from stu98
union all
select * from stu99

create trigger s_instead
on stu_view
instead of insert as
begin
 declare @s_no varchar(20)
end

alter proc GetAllStudent
as

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w2512149

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值