假设有学生、宿舍迁入迁出、宿舍三个表
要实现 删除一个学生信息 然后触发删除 宿舍迁入迁出表信息和更新宿舍表信息
下面是我错误的代码:
create trigger delete_info
on 学生
for delete
as
declare @dno nchar(20);
declare @ano nchar(20);
select @dno=新宿舍号 from 宿舍迁入迁出 where 学生号 =(select 学生号
from deleted)
select @ano=新楼号 from 宿舍迁入迁出 where 学生号 =(select 学生号
from deleted)
delete from 宿舍迁入迁出
where 学生号 = (select 学生号
from deleted)create trigger dorminout_update
on 宿舍迁入迁出
after delete
as
update 宿舍
set 剩余容量=剩余容量+1,
已用容量=已用容量-1
where 宿舍号=@dno and 楼号=@ano--测试数据:
delete from 学生
where 学生号 = '1001010101';本来第二个触发器是这样的:create trigger dorminout_update
on 宿舍迁入迁出
after delete
as
update 宿舍
set 剩余容量=剩余容量+1,
已用容量=已用容量-1
from 宿舍t
inner join deleted i
on t.楼号 = i.新楼号
and t.宿舍号 = i.新宿舍号
触发器
要实现 删除一个学生信息 然后触发删除 宿舍迁入迁出表信息和更新宿舍表信息
下面是我错误的代码:
create trigger delete_info
on 学生
for delete
as
declare @dno nchar(20);
declare @ano nchar(20);
select @dno=新宿舍号 from 宿舍迁入迁出 where 学生号 =(select 学生号
from deleted)
select @ano=新楼号 from 宿舍迁入迁出 where 学生号 =(select 学生号
from deleted)
delete from 宿舍迁入迁出
where 学生号 = (select 学生号
from deleted)create trigger dorminout_update
on 宿舍迁入迁出
after delete
as
update 宿舍
set 剩余容量=剩余容量+1,
已用容量=已用容量-1
where 宿舍号=@dno and 楼号=@ano--测试数据:
delete from 学生
where 学生号 = '1001010101';本来第二个触发器是这样的:create trigger dorminout_update
on 宿舍迁入迁出
after delete
as
update 宿舍
set 剩余容量=剩余容量+1,
已用容量=已用容量-1
from 宿舍t
inner join deleted i
on t.楼号 = i.新楼号
and t.宿舍号 = i.新宿舍号
触发器
解决方案 »
- 比较两个表间结构差异,根据差异修改表的结构(子表向母表升级)
- sql server null值的问题
- 获取存储过程output参数 急 在线等~~~~~~~
- 一张表挂20个触发器会怎么样
- 偶把network service 改为local service 没成功!结果换不回来了!服务业启动不了了!求解决
- 不能更新查询,因为它不含可用作键的搜索列
- 一般在MSSQL里,大家在数据设计时候对于货币值用啥样的类型,精度怎么处理?
- 更改win2000的administrator的口令后,sql2000不能启动?
- 有谁还在使用SQL Server 7.0 ?
- SQL结果的抬头如何一并保存到EXCEL?
- sql中怎么判断某个字段的值是否连续?
- SQL 查询分析器无法使用.NETBIOS TCP/IP
on 宿舍迁入迁出
after delete
as
update t set t.剩余容量=t.剩余容量+1,
t.已用容量=t.已用容量-1
from 宿舍 t inner join deleted i on t.楼号 = i.新楼号
and t.宿舍号 = i.新宿舍号
on 学生
for delete
as begin
declare @dno nvarchar(20),@ano nvarchar(20)
select @dno=a.新宿舍号,@ano=a.新楼号
from 宿舍迁入迁出 a join deleted d on a.学生号 =d. 学生号
delete a from 宿舍迁入迁出 a
join deleted d on a.学生号 =d. 学生号
update 宿舍
set 剩余容量=剩余容量+1,
已用容量=已用容量-1
where 宿舍号=@dno and 楼号=@ano
end