我现在有两个表
A
id  accont name
1   aaa    bbbb
2   ccc    dddd
3   fff    mmmmB
accont
aaa
fff我现在想做的就是删除A表的数据时,若B表中也存在,就也删除B表总得数据。例如我删除id=3时,删除后的结果,就是A表和B表都删除了account=fff的数据问题是删除语句delete 不能做左连接。麻烦高人给帮忙解决

解决方案 »

  1.   

    create trigger trig_name 
    on A
    after delete
    as
    delete B where acount in (select accont from deleted)
      

  2.   


    declare @i int set @i=3
    delete @b where accont in(select accont from @a where id=3)
    delete @a where id=3
      

  3.   

    --我晕,定义变量,忘了使用了,修正一下。
    declare @i int set @i=3
    delete @b where accont in(select accont from @a where id=@i)
    delete @a where id=@i
      

  4.   

    create trigger trig_name  
    on A
    after delete
    as
    delete B where acount in (select accont from deleted) 
      

  5.   

    用触发器, 也可以在程序中同时写2条delete语句.推荐用第2种, 如4楼方法.
      

  6.   

    我不能写两条sql语句,因为前面有一个变量要记删除的数量,两个sql数量就肯定没法计算了,请帮我写成一个sql语句
      

  7.   

    一定要一条语句的话, 只能用触发器了, 如2楼6楼的方法.不过,你讲的"前面有一个变量要记删除的数量,两个sql数量就肯定没法计算了"应该是可以解决的,
    请给出代码.
      

  8.   

    int result = 0; //删除的操作完成的条数
    int c = 0; //页面所选择的
    删除的条数
    for (int i=0;i<this.DataGrid1.Items.Count;i++)
    {
    chk = (CheckBox)this.DataGrid1.Items[i].FindControl("chk");
    if (chk.Checked)
    {
    c ++;
    result += member.DeleteMemberById(Convert.ToInt32(this.DataGrid1.DataKeys[i]));
    //内部sql文:delete from t_members where Id = @id
    现在我新增加了一个表,所以也想删除这个表里的字段,但是新增表盒原表 t_members里的条数不相同,新增表只是原表t_members的子集,不知道该怎么更改已有的sql文
    }
    } if(c == result)
    {
    this.lbMessage.Text = "删除会员成功!";
    InitData();
    }
      

  9.   

    返回@@ROWCOUNT,即是上一条SQL指令影响的行数..declare @i int set @i=3
    delete @b where accont in(select accont from @a where id=@i)
    delete @a where id=@i
    return @@ROWCOUNT
      

  10.   

    楼上的高人,我的sql文里其实每次是删一条的,不用计数,程序里其实是在外面计数的。就是执行一遍delete它记一次。现在的问题就是如果把两个delete写一起,程序计数的那个变量result,就不是一条一计数了,到了最后
    if(c == result)
    {
    this.lbMessage.Text = "删除会员成功!";
    InitData();
    }
    这段代码我就怎么也进不去
      

  11.   

    如果是Winform的话不建议使用触发器,
    还是写两条语句.