我想要一个删除的SQL语句
要求是
A表                    B表
AId(主键)            BId(主键)
Name                AId(A表外键)
                    LoveA表内容               B表内容
1 赵子龙              1     1   枪   
2 张飞                2     1   留鼻涕
3 诸葛亮              3     2   矛
                      4     2   当黑人
                      5     3   扇子我想把张飞删除 和 张飞的外键内容全删除
 我想要的是1条SQL语句   类似联表查询的 1条SQL语句 查多表
   我不要这种SQL语句 
      delete from B where AId=2
     delete from A where AId=2
 这种SQL语句 身为小白的我都明白  O(∩_∩)O~
     我只想要一句话的SQL语句删除两个表的内容 
   在线等啊 oooO ↘┏━┓ ↙ Oooo 
 ( 踩)→┃我┃ ←(死 ) 
  \ ( →┃√┃ ← ) / 
  \_)↗┗━┛ ↖(_/ 
    会的请使劲踩啊

解决方案 »

  1.   

    用级联删除,给你个例子你就明白了:
    create table a 

    id varchar(20) primary key, 
    password varchar(20) not null 
    ) create table b 

    id int identity(1,1) primary key, 
    name varchar(50) not null, 
    userId varchar(20), 
    foreign key (userId) references a(id) on delete cascade 

    表B创建了外码userId 对应A的主码ID,声明了级联删除 
    测试数据: 
    insert a values ('11','aaa') 
    insert a values('23','aaa') 
    insert b values('da','11') 
    insert b values('das','11') 
    insert b values('ww','23') 
    删除A表内id为‘11’的数据,发现B表内userId 为“11”也被数据库自动删除了,这就是级联删除 
    delete a where id='11'
      

  2.   

    力求一句SQL语句 解决   
      或者给个 
            存储过程也可以 希望别给
    create porc A
    as
       delete from B where AId=2 
       delete from A where AId=2
     这种 不然我会发疯了 
      

  3.   

    用存储过程,如:
     
    @AID int = -1  --传过来的AID值,默认值为-1
    AS
    if(@AID<>-1)  --假如接收到了(也就是不等于-1),执行删除操作
     begin  
        delete from B where AId = @AID
        delete from A where AId = @AID 
     end
      

  4.   

    我说清楚点吧  
      我有个方法用于自动生成 SQL语句 已经可以实现联表查询 和 单步的增改删 语句 
              就是没有一句SQL语句解决多表增改删 的列子 不好写方法
           哎!~~~~~~~~~