SELECT concat('DROP TABLE IF EXISTS ', table_name, ';') FROM information_schema.tables WHERE table_schema = 'mydb'; mydb换成你想删除的数据库的名字这样可以生成一个批量处理的sql语句,你需要再运行一次这个结果集就可以删除所有的表而不删除数据库了…
要删除所有的用户表: declare @sql varchar(8000) SELECT @sql='drop table ' + name FROM sysobjects WHERE (type = 'U') ORDER BY 'drop table ' + name exec(@sql) 如果要删除所有用户表中的内容,可以执行以下语句: declare @sql varchar(8000) SELECT @sql='truncate table ' + name FROM sysobject…
create or replace function count_rows/**查询各表实际记录数*/(table_name in varchar2,owner in varchar2 default null)return numberauthid current_userIS num_rows number; stmt varchar2(2000);begin if owner is null then stmt := 'select count(*) from "'||table_name…
select concat('drop table ',table_name,';') from TABLES where table_schema='数据库名称'; select concat('truncate ',table_name,';') from TABLES where table_schema='数据库名称';…
--oracle删除数据库表(无主键)中重复的记录 1, CREATE TABLE newtable as SELECT distinct * FROM T_SYSTEM_MENU_PRIV; 2, drop table T_SYSTEM_MENU_PRIV; 3, ALTER TABLE newtable rename to T_SYSTEM_MENU_PRIV;…
DECLARE @tablename VARCHAR(30),@sql VARCHAR(500)DECLARE cur_delete_table CURSOR READ_ONLY FORWARD_ONLY FORSELECT name FROM sysobjects WHERE name LIKE 'PUB%' AND type='U'OPEN cur_delete_tableFETCH NEXT FROM cur_delete_table INTO @tablenameWHILE @@FETC…