数据库 触发器 问题 急急急!!!
学校人事数据库有教师信息表(teacher)和教师工资表(salary),建表语句如下:createtableteacher--教师信息表(tIdchar(3)prima...
学校人事数据库有教师信息表(teacher)和教师工资表(salary),建表语句如下:
create table teacher --教师信息表
( tId char(3) primary key; --tId 为教师编号
tName varchar(10) --tName为教师名
tTitle varchar(10) --tTitle 为教师职称
);
create table salary --教师工资表
( tId char(3), --tId为教师编号
tSalary real --tSalary为教师工资
);
教师的工资是由教师职称决定的,教师职称和教师工资对应关系为:教授(3000元),副教授(2500元),讲师(2000元),
助教(1500元)。定义触发器,完成如下功能:当教师信息表(teacher)中教师的职称改变时,教师工资表(salary)的教师工资会自动改变。 展开
create table teacher --教师信息表
( tId char(3) primary key; --tId 为教师编号
tName varchar(10) --tName为教师名
tTitle varchar(10) --tTitle 为教师职称
);
create table salary --教师工资表
( tId char(3), --tId为教师编号
tSalary real --tSalary为教师工资
);
教师的工资是由教师职称决定的,教师职称和教师工资对应关系为:教授(3000元),副教授(2500元),讲师(2000元),
助教(1500元)。定义触发器,完成如下功能:当教师信息表(teacher)中教师的职称改变时,教师工资表(salary)的教师工资会自动改变。 展开
1个回答
展开全部
create trigger trgtch
on teacher
for update
as
if update(tTitle)
begin
update salary set tSalary=
(case when inserted.tTltle='教授' then 3000
when inserted.tTltle='副教授' then 2500
when inserted.tTltle='助教' then 1500
else 0 end)
where exists(select tid,tTitle from inserted where inserted.tid=salary.tid)
end
on teacher
for update
as
if update(tTitle)
begin
update salary set tSalary=
(case when inserted.tTltle='教授' then 3000
when inserted.tTltle='副教授' then 2500
when inserted.tTltle='助教' then 1500
else 0 end)
where exists(select tid,tTitle from inserted where inserted.tid=salary.tid)
end
追问
在帮忙做一个
银行数据库有账户信息表(account),建表语句如下:
create table account --账户表
( accountId char(3) primary key, --accountId为客户的账号
balance real check(balance>=1) --balance为客户存款余额
)创建存储过程TRANSFER,实现从银行一个账号转存指定数额的款项到另一个账号中.存储过程的主体部分要求为一个事务,来保证转账安全性.可用系统变量@@error来检测操作过程中是否发生错误
追答
本人无业中,不如合作吧?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询