在MS SQLSERVER中如何最快的速度清空所有用戶(hù)表的數(shù)據(jù)
有時(shí)候我們需要清空數(shù)據(jù)庫(kù)中所有用戶(hù)表的數(shù)據(jù),如果一張表一張表的清空的話,遇到一個(gè)龐大的數(shù)據(jù)系統(tǒng)估計(jì)得崩潰了.? 用游標(biāo)加上用變量來(lái)引用表名就可以做到這一點(diǎn).?用變量來(lái)引用表名對(duì)表操作可以用在存儲(chǔ)過(guò)程中,根據(jù)需要?jiǎng)犹x擇引用某個(gè)表的數(shù)據(jù)或?qū)ζ洳僮?? 估計(jì)用的不多,好玩而已:)//定義游標(biāo)
DECLARE tables_cursor CURSOR
?? FOR
?? SELECT name FROM sysobjects WHERE type = 'U' //選擇用戶(hù)表名
OPEN tables_cursor //打開(kāi)游標(biāo)連接
DECLARE @tablename sysname??// 定義變量
FETCH NEXT FROM tables_cursor INTO @tablename?? //結(jié)果集中一行一行讀取表名
WHILE (@@FETCH_STATUS <> -1)? //判斷游標(biāo)狀態(tài)
BEGIN
?? EXEC ('TRUNECATE TABLE ' + @tablename)?? //清空表中的數(shù)據(jù)
?? FETCH NEXT FROM tables_cursor INTO @tablename? //下一行數(shù)據(jù)
END
DEALLOCATE tables_cursor? //關(guān)閉游標(biāo)
posted on 2006-06-30 17:09 傻 瓜 閱讀(3624) 評(píng)論(1) 編輯 收藏 所屬分類(lèi): MS SQLSERVER