有時候我們需要清空數(shù)據(jù)庫中所有用戶表的數(shù)據(jù),如果一張表一張表的清空的話,遇到一個龐大的數(shù)據(jù)系統(tǒng)估計得崩潰了.? 用游標加上用變量來引用表名就可以做到這一點.?用變量來引用表名對表操作可以用在存儲過程中,根據(jù)需要動太選擇引用某個表的數(shù)據(jù)或?qū)ζ洳僮?? 估計用的不多,好玩而已:)
//定義游標
DECLARE tables_cursor CURSOR
?? FOR
?? SELECT name FROM sysobjects WHERE type = 'U' //選擇用戶表名
OPEN tables_cursor //打開游標連接
DECLARE @tablename sysname??// 定義變量
FETCH NEXT FROM tables_cursor INTO @tablename?? //結(jié)果集中一行一行讀取表名
WHILE (@@FETCH_STATUS <> -1)? //判斷游標狀態(tài)
BEGIN
?? EXEC ('TRUNECATE TABLE ' + @tablename)?? //清空表中的數(shù)據(jù)
?? FETCH NEXT FROM tables_cursor INTO @tablename? //下一行數(shù)據(jù)
END
DEALLOCATE tables_cursor? //關(guān)閉游標