可以使用SQL 触发器来删除子表数据
触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有create、alter、drop语句。
DML触发器分为:
after触发器(之后触发)
a、 insert触发器
b、 update触发器
c、 delete触发器
下面只介绍delete 触发器,SQL 如下:
--delete删除类型触发器
if (object_id('tgr_classes_delete', 'TR') is not null)
drop trigger tgr_classes_delete
go
create trigger tgr_classes_delete
on classes
for delete --删除触发
as
print '备份数据中……';
if (object_id('classesBackup', 'U') is not null)
--存在classesBackup,直接插入数据
insert into classesBackup select name, createDate from deleted;
else
--不存在classesBackup创建再插入
select * into classesBackup from deleted;
print '备份数据成功!';
go
可以的,只要写一个删除语句,然后建立一个删除触发器,在触发器里面再删除另一个表就行了。
所以每次你只需要删除一个表,触发器是自动的。
你可以建个外键啊,不过那只能删除相关外键的数据
汗,你想表达什么?没看明白
不能