我建了一个数据库,里面有很多表,表中有很多字段,我怎样才能一下全部删除所有表中所有字段的某些数据?

我建了一个数据库,里面有很多表,表中有很多字段,我怎样才能一下全部删除所有表中所有字段的某些数据?,第1张

我的百度网盘推广链接,请支持下

http://yun.baidu.com/disk/beinvited?uk=4195699187

万分谢谢。

select * from First

select * from Secend

--删除包含“机尾”数据的记录

declare

@strdel varchar(20)

set @strdel='机尾'

declare @temp table

(

xh int identity,

tabname varchar(20), --表名

colname varchar(20) --列名

)

insert into @temp(tabname,colname)

select b.name as tabname,a.name as colname 

  from syscolumns a inner join sysobjects b on a.id=object_id(b.name)

  where b.xtype='U' 

and  b.name not in ('sysdiagrams')--排除系统表

  order by b.name

declare

@tabname varchar(20),

@colname varchar(20),

@i int,

@rowcount int,

@strsql varchar(100)

set @rowcount=@@ROWCOUNT

set @i=0

while @i<@rowcount

begin

set @i=@i+1

select @tabname=tabname,@colname=colname from @temp where xh=@i

set @strsql='delete ' + @tabname + ' where ' + @colname + ' like ''%' + @strdel + '%'''

exec(@strsql)

end

select * from First

select * from Secend

删除包含“机尾”的数据记录,看看下面的效果

假如建了关系图,多执行几次脚本即可。

1.首先使用ORACLE系统用户登录PL/SQL管理工具。

2.在SQL脚本中,编写和执行SQL语句来删除表空间的表空间名称。

3.如果希望清理用户下的所有数据库表,可以执行以下语句,删除用户名cascade。

4.当执行上述语句时,它将显示在它正在执行的级别以下。

5.执行之后,可以使用删除的用户登录PL/SQL。

6.如果有d出提示,说明删除成功。

新建一个表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调用这个存储过程就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10043702.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存