存储过程批量删除
㈠ 怎么使用sql语句批量删除多个表的相同字段
不知道您用的是什么数据库了。
不过做法肯定是一样,用两个游标,第一个游标从数据字典中检索出所有的表,第二个游标从每个表中检索所有的字段,然后遇到有要和你删除名称相同的字段的时候,执行alter table tablename drop column columnname的操作。
不过这个执行不能直接这么执行,而是设置一个字符串的变量,例如SQLSERVER,需要@delsql = 'alter table ' + @tablename + ' drop column ' + @columnname
exec(@delsql)
而oracle也一样delsql = 'alter table ' + tablename + ' drop column ' + columnname;
execute immediate delsql;
要使用这样的写法。
不可能使用一个SQL直接删除所有的。
㈡ sql能否批量删除多个行
1、首先我们打开SQL Server 2012资源管理器,在已创建好的数据库表t_call_info,查询和比较表记录。
直接用jdbc执行sql语句块declare @procName varchar(500) declare cur cursor -- 定义个游标 for select [name] from sysobjects where type = 'p' open cur -- 打开游标 fetch next from cur into @procName --迭代游标并给@procName赋值 while @@fetch_status = 0 --判断迭代状态 begin if @procName <> 'DeleteAllProceres' exec('drop procere ' + @procName) -- 动态执行sql语句 fetch next from cur into @procName end close cur deallocate cur
㈣ 求一个oracle的批量删除的存储过程
declarecursorc1isselect*fromtable_A;
li_linenonumber(8);
begin
li_lineno:=1;
fortinc1loop
deletefromtable_Awherexbie00='1';
ifmod(li_lineno,1000)=0then
commit;
endif;
li_lineno:=li_lineno+1;
endloop;
end;
/