指定某个字段内容,如何把sql数据库中的所有表的相应记录全部删除。每个表中都有这个相同的字段.

假如sql数据库的所有表都有一个相同且已知的字段,给出这个字段的一个值,如何查找删除所有表中相应的内容。
我是用delphi用的,有比较简洁的SQL语句或方法吗?

新建一个表tbl_all,两个字段(idx:自增长,tbl:表名),把所有表名导入这张表,假设那个相同的字段是:fd_test

写个存储过程:
CREATE PROCEDURE DEL_DATA
@fd varchar(20)
AS
declare @idx int
declare @row_count int
select @row_count=count(*) from tbl_all
set @idx=1
while @idx<@row_count
begin
declare @tbl varchar(20)
select @tbl=tbl from tbl_all where idx=@idx
delete from @tbl where fd_test=@fd
set @idx=@idx+1
end
GO

在DELPHI中只要用ADOStoredProc调用这个存储过程就可以了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-01-14
做个视图 select * from A,B,C...where A.id=B.id=C.ed....
然后直接对视图del from view where id=....