主题:SQL触发器的问题,这个触发器不会
redidea9563
[专家分:730] 发布于 2009-09-12 20:42:00
我要建立一个触发器:
我有一个表,有24个字段,假设其中的第14个字段或者第15个字段任意一个字段改动,将执行触发器操作,操作的内容是:将这个表的当前记录复制到另一个表中。请问如何操作,谢谢!
另外:在SQL里如何用命令上移一个记录,下移一个记录,如果将当前记录的字段的值赋给变量。谢谢!
回复列表 (共3个回复)
沙发
菜鸭 [专家分:5120] 发布于 2009-09-14 07:49:00
create trigger trigger_name on table_name for update as
if update(第14字段) or update(第15字段)
insert 另一个表 select * from inserted --新记录,如原记录则为deleted
另
在sqlserver表中没有上一记录下一记录的概念
除非在表中建一列来记录位置
如从一记录行集中取上一记录或下一记录,则要用游标
板凳
redidea9563 [专家分:730] 发布于 2009-09-14 17:05:00
很是感谢,那么这样会不会将原来的表的所有记录全部插入到另一个记录.假设:
原表
姓名 分数 科目
张三 78 语文
张四 78 化学
张五 78 英语
张六 78 数据
要插入的新表
姓名 分数 科目
假设我修改了张五的分数为90,那么系统自动将
张五 78 英语
插入到新表中,而不是插入的90.
请问如何实现!谢谢!
如果说上述是只插入了当前记录,那么要插入全部记录如何实现!
3 楼
菜鸭 [专家分:5120] 发布于 2009-09-15 07:44:00
假设我修改了张五的分数为90,那么系统自动将
张五 78 英语
插入到新表中,而不是插入的90.
请问如何实现!谢谢!
====
create trigger trigger_name on table_name for update as
if update(第14字段) or update(第15字段)
insert 另一个表 select * from deleted
这样只插入一条原记录
张五 78 英语
我来回复