从两个表中删除

时间:2014-10-29 07:35:35

标签: sql-server sql-server-2008-r2

我想一次删除两个表中的数据。

示例

表1:

create table del1
(
cola varchar(10) primary key,
colb varchar(10)
);

表2:

create table del2
(
cola varchar(10) foreign key references del1(cola) on delete cascade,
colb varchar(10)
)

插入一些数据:

insert into del1 values('a','b');
insert into del2 values('a','d');

查询删除记录:

delete from del1 as d1
inner join del2 as d2
on d1.cola= d2.cola 
where d1.cola= 'a'

错误

Incorrect syntax near the keyword 'as'.

2 个答案:

答案 0 :(得分:3)

实际上你不需要加入这两张桌子。 del1表上的delete会自动删除 del2表,因为您有on delete cascade

这就是你需要的。

delete from del1 where cola='a'

此声明将从del1中删除,其中cola =' a'还有del2表,其中cola =' a'

答案 1 :(得分:2)

不需要加入。由于On Cascade delete,它将删除两个记录

delete from del1 where  cola= 'a'