存儲過程批量刪除
㈠ 怎麼使用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;
/