怎样写这样的sqlserver触发器(或者有更好的办法)(100分)

  • 主题发起人 主题发起人 bjf2001
  • 开始时间 开始时间
B

bjf2001

Unregistered / Unconfirmed
GUEST, unregistred user!
1.学生的成绩输入(按照某次考试的对应的科目进行输入)
式样:学籍号、考试号、科目代码、科目成绩
2002001 000001 01 85
2002001 000001 02 74
2002001 000001 03 65
。。。
。。。
(考试号对应考试项目表、科目代码对应考试科目表)
2.要求:(输入或更改成绩的时候,往另外一张行项显示的表中触发写数据,一次考试对应一条
记录,将各学科以表字段的形式对应写入(修改的时候修改))。
表的结构如:学籍号、考试号、科目1、科目2、科目3。。。。
2002001 0000001 80 95 78
2002001 0000002 67 87 67
(表中的科目根据考试的科目自动对应)(即时触发)
 
大家帮帮我呀,急
 
用一个insterted个update trigger就可以实现真的呀
 
能不能写出来给我看看拜托了
 
表1到表2可以用sql语句声称,为什么需要trigger?
 
表1到表2可以用sql语句声称,为什么需要trigger?
怎么做呢,给我代码,我不懂呀
 
CREATE TRIGGER Tri_name ON [dbo].[TableName]
FOR INSERT
AS
select * from inserted
insert into table2
select 学籍号,考试号,科目1,科目2,科目3 from inserted
大概就这样吧
 
需要动态的从考试成绩表中动态取出科目的,另外还要能够对应到的上去
 
CREATE TRIGGER Tri_name ON [dbo].[TableName]
FOR update
as
declare @km char(10)
if update(科目成绩)
begin
set @km=(select 科目代码 from inserted)
exec ("update 表二 set "+@km+"="+(select 成绩 from inserted) where
学籍号=(select 学籍号 from inserted) and 考试号=(select 考试号 from inserted))
end
这样试试,不知道对不对!
set
 
说明,@KM应该从科目表中得到科目的名称和表二相对应
set @km=(select 科目名称 from 科目代码表 where 科目代码=(select 科目代码 from inserted))
 
在插入或更新的时候应该判断表二中是否存在该次考试的信息,如果存在只能更改,反之只能插入
代码应该怎么写
 
大家快点帮帮忙!
 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部