declare @tablename varchar(30),
@sql varchar(500)
declare cur_delete_table cursor read_only forward_only for
select name from sysobjects where name like 'pub%' and type='u'
open cur_delete_table
fetch next from cur_delete_table into @tablename
while @@fetch_status = 0
begin
select @sql='delete from '+@tablename
exec (@sql)
fetch next from cur_delete_table into @tablename
endclose cur_delete_table
deallocate cur_delete_table
有時候我們需要清空資料庫中所有使用者表的資料,如果一張表一張表的清空的話,遇到乙個龐大的資料系統估計得崩潰了. 用游標加上用變數來引用表名就可以做到這一點. 用變數來引用表名對錶操作可以用在儲存過程中,根據需要動太選擇引用某個表的資料或對其操作
//定義游標 declare tables_cursor cursor
forselect name from sysobjects where type = 'u' //選擇使用者表名
open tables_cursor //開啟游標連線
declare @tablename sysname // 定義變數
fetch next from tables_cursor into @tablename //結果集中一行一行讀取表名
while (@@fetch_status <> -1) //判斷游標狀態
begin
exec ('truncate table ' + @tablename) //清空表中的資料
fetch next from tables_cursor into @tablename //下一行資料
enddeallocate tables_cursor //關閉游標
例如:create proc clearallusertable
as begin
declare tables_cursor cursor
forselect name from sysobjects where type = 'u'
open tables_cursor
declare @tablename sysname
fetch next from tables_cursor into @tablename
while (@@fetch_status <> -1)
begin
--print @tablename
exec ('truncate table ' + @tablename)
fetch next from tables_cursor into @tablename
end
deallocate tables_cursor
end;
gomssql批量刪除資料庫中的表或者儲存過程
先在系統表中找到要處理的表名或者是儲存過程的名字,在用游標對其進行處理
注意 sysobjects.xtype的值不同 刪除命令是不同的如刪除儲存過程用drop procedure procedurename 刪除錶用 drop table tablename sysobjects.xtype的值表示的意思如下表:
c:檢查約束。
d:預設的約束
f:外來鍵約束
l:日誌
p:儲存過程
pk:主鍵約束
rf:複製過濾儲存過程
s:系統**
tr:觸發器
u:用於**。
uq:獨特的約束。
批量處理的**如下:
declare cursorname cursor for select 'drop procedure '+name from sysobjects where name like 'xx%' and xtype = 'p' --刪除對應的儲存過程
declare cursorname cursor for select 'drop table '+name from sysobjects where name like 'xx%' and xtype = 'u' --刪除對應的表
open cursorname
declare @curname sysname
fetch next from cursorname into @curname
while(@@fetch_status=0)
begin
exec(@curname)
fetch next from cursorname into @curname
endclose cursorname
deallocate cursorname
Mysql 批量刪除資料表資料
drop 不再需要該錶 truncate 保留該錶,但要刪除所有記錄 delete 要刪除部分記錄或者有可能會後悔的話,用 delete 1.drop table tb drop 是直接將 刪除,無法找回。例如刪除 user 表 drop table user 2.truncate table tb...
DataWorks使用之批量刪除資料表
maxcompute平台上儲存著海量的資料,對應著數以百計 千計的資料表,如何高效 快捷的管理這些表,成為了管理員的重要任務。比如要在這茫茫多的資料表中,刪除表名包含字串 temp 的臨時資料表,管理員這時該如何操作,才能快速的找到這些資料表,並刪除它們呢?請往下看 首先使用者登入管理控制台,進入d...
MySQL 刪除資料表
mysql中刪除資料表是非常容易操作的,但是你再進行刪除表操作時要非常小心,因為執行刪除命令後所有資料都會消失。以下為刪除mysql資料表的通用語法 drop table table name 以下例項刪除了資料表runoob tbl root host mysql u root penter pa...