delete   与 inner join 同时使用 ,同时删除两张表中的记录,改怎么写?"delete  from Orders inner join Odetails on Orders.Oid=Odetails.Oid where Orders.Oid='" + Oid + "'";
这样写出错了...

解决方案 »

  1.   

    create table ta (id int primary key)
    create table tb (id int primary key FOREIGN KEY REFERENCES ta(id) ON DELETE CASCADE)
    go
    insert ta select 1
    insert ta select 2
    insert ta select 3
    insert tb select 2
    insert tb select 1
    delete ta
    from ta 
    where id = 1 
    select * from ta
    select * from tb
    drop table tb, ta
      

  2.   

    或者
    create procedure my_proc
    as
    begin
      select m.a into #temp from table1 m , table2 n where m.a = n.a
      delete table1 from table1 m,#temp n where m.a = n.a
      delete table2 from table2 m,#temp n where m.a = n.a
    end
    goexec my_proc
      

  3.   

    我是在类里面直接写SQL语句的
    有简单的方法吗?
      

  4.   

    "delete from Orders where Oid in (select Oid from Odetails) and Oid='" + Oid + "'";
      

  5.   

    "delete Orders from Orders inner join Odetails on Orders.Oid=Odetails.Oid where Orders.Oid='" + Oid + "'";