用触发器:
create trigger 触发器名 on 表A
for delete
as
delete a from 表B  a where exists(select 1 from deleted where id = a.id)

解决方案 »

  1.   

    看你用到删除的地方是否多了
    delete A where ID = '**'
    delete B where ID = '**'
    直接写的话效率高一点
      

  2.   

    delete from a where id in(select a.id=b.id from a.a,b.b)
      

  3.   

    触发器
    这样设计不太对吧,很少有两个表直接用id来链接的,A.ID=B.AID这样比较好些
      

  4.   

    回复人: lypzl() ( ) 信誉:100 
    delete from a where id in(select a.id=b.id from a.a,b.b)问这位老大,后边括号里什么意思?
      

  5.   

    是啊“select a.id=b.id from a.a,b.b”这个?
      

  6.   

    select语句的一种嵌套用法, a.a,b.b我也无法理解 哦
    不过上面写delete from a where id in(select a.id=b.id from a.a,b.b)这条语句的的人方向性错误,楼主要求删除的是与A表关联的B表的字段.
      

  7.   

    --如果你是用sql server数据库,则无法用一条sql语句删除两个表中的数据--你可以在表A创建一个同步删除的触发器,这样可以用一条语句删除--触发器
    create trigger tr_delete on 表A
    for delete
    as
    delete b from 表B b
    where exists(
    select * from deleted where ID=b.ID)
    GO--删除语句
    delete a from 表A a
    where exists(
    select * from 表B where ID=a.ID)
      

  8.   

    请问,邹大侠,这里的小a 指a表中的一条记录么?
    delete a from 表A a                     '''''此处不解a 是表A中某记录字段还是代表一条记录
    where exists(
    select * from 表B where ID=a.ID)
      

  9.   

    create trigger mingz on 表A for delete 
    as 
    delete b from 表B b where exists(select * from deleted where ID=b.ID)
      

  10.   

    用触发器实现,sqlserver中delete 语句不能同时删除两个表中的数据
      

  11.   

    当自连接的时候一定要用到别名比如说select a.name,b.name from 表1 a left join 表1 b on a.id=b.id如果不用别名的话就会出现以下情况 select 表1.name,表1.name from 表1 a left join 表1 b on a.id=b.id就会有问题,SQL SERVER 不知道两个 "表1.name" 分别是哪个表的NAME