现有两个表相关联,一个学生表T_Student,一个成绩表T_Score,关联字段为学生ID,我想在删除学生时,把成绩表中关于学生的信息也删掉,存储过程为:
Create procedure DelStudent
@StuID @varchar(10)
as
Delete From T_Score Where StudentID = @StuID
触发器是这样写的:
Create trigger DelScore
on T_Student
for delete
as
Exec @DelStudent @StuID = T_Student.ID
但是不对,生成触发器时产生错误,说是最后一行“.”附近产生错误,谁能告诉我触发器该怎样写呀?谢谢!!
Create procedure DelStudent
@StuID @varchar(10)
as
Delete From T_Score Where StudentID = @StuID
触发器是这样写的:
Create trigger DelScore
on T_Student
for delete
as
Exec @DelStudent @StuID = T_Student.ID
但是不对,生成触发器时产生错误,说是最后一行“.”附近产生错误,谁能告诉我触发器该怎样写呀?谢谢!!
解决方案 »
- 求动态ARRAY,组合之和等于固定值算法
- 关于DBGrideh的下载问题
- 哪位大虾有delphi的 vpn 通讯例程
- VC的数据类型对应Delphi里的数据类型?
- 使用WebBrowser组件穿过代理服务器的疑问
- delphi调用VC写的DLL的参数问题!
- 由tabset控件得到的疑惑。请大家帮帮忙。看一下
- 谁帮忙翻译下这段delphi的话,没一句或块 是什么一是 加个备注或解释一下关键函数就行
- delphi里做游戏可以用DirectX SDK吗?
- 请问网络蚂蚁中的……
- ★★★★ 能不能做到将数据集中的所有数据作繁简体转换? ★★★★
- 请教各位大虾,在delphi中怎样给一个窗体上的button定义热键?
这一句直接这样试试
Create procedure DelStudent( @StuID varchar(10))
as
Delete From T_Score Where StudentID = @StuID;
DELETE FROM T_student where sutdenid=@stu_id;
方法2:
触发器是这样写的:
跟你的那样,但你的语法,写法错误,去翻书。
Create trigger DelScore
on T_Student
for delete
as
declare @StuID (类型)
select @StuID=T_Student.ID from 表
Exec @DelStudent @StuID
create table table1(
studentid int primary key,Student_name varchar(8))create table table2(
studentid int foreign key reference table1(studentid) on delete)
这样当删除了table1中的某一条记录,table2中相对应的记录就会自动删除。
if exists(select name from sysobjects where name='trigger_delete' and type='TR')
drop trigger Course_Class_trigger_delete
go
create trigger trigger_delete
on table1
for delete
as
declare @name varchar(30)
select @name=student_id from deleted
delete table2 where student_id=@name