触发器和游标
来源:互联网 发布:13周胎儿nt数据看男女 编辑:程序博客网 时间:2024/05/08 10:09
1:触发器
触发时自动生成两个表inserted和deleted
定义:类似于C#中的事件,是一种特殊的参数不用手动调用;
语法:create trigger 触发器名 on设置触发器的表 after(for)或 instead of 查询语句类型
(insert,delete,updata)
as
begin
触发时要做的事
end
after在执行表(iserted/deleted)中有记录,在被执行记录表中没记录;而instead of则会替换触发器
不让其执行执行删除时量表中都会有同条记录
例子:
-- 1在每次插入数据的时候都把插入的数据值打印出来。
create trigger trigger_print on teacher
after insert
as
begin
declare @tname nvarchar(50)
declare @tsalary money
select @tname= tname from inserted
select @tsalary= tsalary from inserted
end
print @tname
print @tsalary
insert into teacher values('钟莲',8000)
将deleted表备份到另一个表
select top 0 * into classbak
from teacher
-- --(2)创建触发器
create trigger trigger_eu on teacher
after delete
as
begin
set identity_insert classbak on--插主键时要记得打开
insert into classbak (tid,tname,tsalary)--注意字段必须记得写
select * from deleted
set identity_insert classbak off
end
delete from teacher where tid=1
select * from classbak
select * from teacher
2:游标
效率比较慢
定义declare 游标名 cursor 游标选项(fast_forward,forward_only<得到当前id current of 游标名
>)
for 查询语句(这里的表就是游标所建的表)
(2)open
(3)操作
fetch next from 变量名
while @@fetch_status=0 --全局变量看上一条是否被执行(移动成功)
begin
sql语句
fetch next from 变量名//改变条件的语句
(4)关闭 close
(5)释放 deallocate
-- 2将奖金中的reward设置为 工资的0.1倍
---1:定义变量
declare @id int
declare @salary money
--2:建游标在工资表上
declare add_reward cursor fast_forward
for select tid,tsalary from teacher
open add_reward
fetch next from add_reward into @id,@salary
while @@FETCH_STATUS=0
begin
update teachersalary set reward=0.1*@salary
where tsid=@id
fetch next from add_reward into @id,@salary
end
close add_reward
deallocate add_reward
end
- 触发器和游标
- sql 触发器和游标
- 游标和触发器
- 游标和触发器
- 触发器和游标的用法
- Oracle,day9,游标和触发器
- 触发器、游标
- SQL数据库触发器和游标的使用
- MYSQL 存储过程,游标和触发器
- 【Oracle】第五章游标和触发器
- SQL存储过程、触发器和游标
- 触发器和游标的第一次使用
- MySQL-SQL之游标,触发器和事务
- SQL-SERVER数据库中的游标、存储过程和触发器
- Oracle学习交流(5)---触发器和游标
- Oracle11g基础学习---------(6) 游标和触发器
- 诠释索引、视图、游标、存储过程和触发器
- 索引、视图、游标、存储过程和触发器理解总结
- mvc
- LeetCode Add Binary
- Javascript 读写文件示例:
- 浅显易懂二分图-最大匹配,最小路径覆盖,最小点覆盖
- 页面静态化学习总结
- 触发器和游标
- Android开发之handler(二)
- 黑马程序员之C#学习笔记:用户输入一个年份将其全部转化成大写
- PNG透明背景按钮的实现(MFC)
- STL迭代器失效问题记录
- 什么是游标。游标使用示例。
- POJ 1961(KMP前缀最长重复子串)
- struts2学习笔记--获取Session和request方法
- linux下 关于内存泄露