如果你是要删除2长表里的数据,可以分步做啊: delete from a where a.ida=1; delete from b where b.idb=1; commit; 像你那种做法,是不可行的,不符合oracle的语法。oracle只允许从一张表中删除数据。你是不是想删除A表中的数据(B表不变),但要这些数据存在于B表中,可以使用: DELETE FROM a WHERE (a.ida, a.name) IN (SELECT a.ida, a.name FROM a ,b where a.ida=b.idb); COMMIT; 这些语句我都在oracle92中测试过,不知道你究竟需要做什么?
declare @SqlStr varchar(8000) select @SqlStr='' select @SqlStr=@SqlStr+'delete from ['+[name]+']'+' where id['+[name]+']=1'+CHAR(10) from sysobjects where Xtype=N'U' exec(@SqlStr)
第3个回答 推荐于2018-04-10
delete (select a.ida as ida from a inner join b on a.ida = b.idb ) where ida = 1 这样试试看