数据库应用-Sqlserver触发器
来源:互联网 发布:数字信号视频播放软件 编辑:程序博客网 时间:2024/05/16 12:47
下面讲在SQL SEVER2000/SYBASE数据为里设置触发器的脚本实例
SQL SEVER2000和SYBASE的存储语句是相同的
题目要求:表1和表2的主键都是xjh(学籍号),当表1添加,删除,或者修改数据时,表2自动更新,请用触发器实现它们?
答案:建议在数据库管理中心直接运行DDL的SQL语句,从而达到创建触发器的目的
//建议在表1建议3个触发器,
/*Table1:代表1,Table2:代表2*/
Table1-insert_tg=插入触发器
Table1-del_tg =删除触发器
Table1-update_tg=更新触发器
/*Table1-insert_tg插入触发器*/
create trigger dbo.Table1-insert_tg on Table1
for INSERT as
declare @xjh_s varchar(8)
begin
select @xjh_s=(select xjh from inserted)/*取得新插入的xjh*/
/*检查在Table2不存在此数据,则插入*/
if not exists(select * from Table2,inserted where Table2.xjh=inserted.xjh)
begin
insert into Table2 values(@xjh_s)
end
end
/*Table1-del_tg删除触发器*/
create trigger dbo.Table1-del_tg on Table1
for DELETE as
declare @xjh_s varchar(8)
begin
select @xjh_s =(select xjh from deleted )
delete from 代表2,deleted where (代表2.xjh=deleted.xjh)
end
/*表1的非主键XM被修改,则自动更新到表2对应的XM*/
/*以更新XM姓名为例子*/
Table1-update_tg=更新触发器
create trigger dbo.Table1-update_tg on Table1
for UPDATE as
declare @xjh_s varchar(8)
declare @xm_s varchar(20)
begin
select @xjh_s=(select xjh from inserted)/*取得新插入的XJH*/
select @xm_s=(select xm from inserted)/*取得新修改的xm*/
if update(xm)
begin
/*检查在Table2存在此数据,则更新相关数据*/
if exists(select * from Table2,inserted where Table2.xjh=inserted.xjh)
begin
update Table2 set xm=@xm_s where Table2.xjh=inserted.xjh
end
end
end
- 数据库应用-Sqlserver触发器
- SQLServer触发器保持数据库完整性的实际应用
- SQLServer数据库——触发器
- 查看sqlserver数据库中的所有触发器
- 查询sqlserver数据库中所有的触发器
- SQLServer触发器中 如何访问mySQL数据库?
- 触发器在数据库中的应用
- SQLServer 触发器
- sqlserver触发器
- SQLSERVER触发器
- SqlServer触发器
- SqlServer触发器
- SQLServer触发器
- sqlserver触发器
- sqlserver触发器
- SQLserver--触发器
- Sqlserver 触发器
- sqlserver 触发器
- 如何弹出一个模式窗口来显示进度条
- 数据库理论-数据完整性
- 让秋日的阳光更热烈些吧~(KK记)
- .NET多线程问题
- spring事务管理-声明式(2)(转)
- 数据库应用-Sqlserver触发器
- Spring事务管理-声明式(1)(转)
- iptables Tutorial website
- C#的异步调用
- Mysql中的临时表使用方法讲解
- jsp调用office
- MySQL中修改密码及访问限制设置详解
- 自定义函数
- 不要把多态应用在数组 [3.2]