删除数据库所有table的資料之二
来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 06:42 点击:次
使用微軟未公開的存儲過程來執行
[sql] view plaincopy
/*
1)說明
系統存儲過程sp_MSforeachtable和sp_MSforeachdb,是微軟提供的兩個不公開的存儲過程,從ms sql 6.5開始。
存放在SQL Server的MASTER資料庫中。
2)參數說明:
@command1 nvarchar(2000), --第一條運行的SQL指令
@replacechar nchar(1) = N'?', --指定的占位元符號
@command2 nvarchar(2000)= null, --第二條運行的SQL指令
@command3 nvarchar(2000)= null, --第三條運行的SQL指令
@whereand nvarchar(2000)= null, --可選條件來選擇表
@precommand nvarchar(2000)= null, --執行指令前的操作(類似控制項的觸發前的操作)
@postcommand nvarchar(2000)= null --執行指令後的操作(類似控制項的觸發後的操作)
*/
exec sp_msforeachtable "alter table ? nocheck CONSTRAINT all" --禁所有外鍵
exec sp_msforeachtable "alter table ? DISABLE TRIGGER all" --禁所有觸發器
--刪除所有表的數據,有外鍵的除外
exec sp_msforeachtable @command1='truncate table ?'
,@whereand=' and (objectproperty(o.id,''TableHasForeignRef'')=0 and objectproperty(o.id,''TableHasForeignKey'')=0) '
--把有外鍵的數據刪除
exec sp_msforeachtable @command1='delete ?'
,@whereand=' and (objectproperty(o.id,''TableHasForeignRef'')=1 or objectproperty(o.id,''TableHasForeignKey'')=1) '
--數據庫所有表的信息
exec sp_MSforeachtable @command1="sp_spaceused '?'"
exec sp_msforeachtable "alter table ? check CONSTRAINT all" --開啟所有外鍵
exec sp_msforeachtable "alter table ? enable TRIGGER all" --開啟所有觸發器
--所有identity表復原為1的
exec sp_MSforeachtable @command1='dbcc checkident([?],reseed,0) ' ,@whereand= ' and (objectproperty(o.id,''TableHasIdentity'')=1) '
--重建所有索引
exec sp_MSforeachtable @command1='dBCC DBREINDEX ([?]) '
摘自 MasterLonely的专栏
[sql] view plaincopy
/*
1)說明
系統存儲過程sp_MSforeachtable和sp_MSforeachdb,是微軟提供的兩個不公開的存儲過程,從ms sql 6.5開始。
存放在SQL Server的MASTER資料庫中。
2)參數說明:
@command1 nvarchar(2000), --第一條運行的SQL指令
@replacechar nchar(1) = N'?', --指定的占位元符號
@command2 nvarchar(2000)= null, --第二條運行的SQL指令
@command3 nvarchar(2000)= null, --第三條運行的SQL指令
@whereand nvarchar(2000)= null, --可選條件來選擇表
@precommand nvarchar(2000)= null, --執行指令前的操作(類似控制項的觸發前的操作)
@postcommand nvarchar(2000)= null --執行指令後的操作(類似控制項的觸發後的操作)
*/
exec sp_msforeachtable "alter table ? nocheck CONSTRAINT all" --禁所有外鍵
exec sp_msforeachtable "alter table ? DISABLE TRIGGER all" --禁所有觸發器
--刪除所有表的數據,有外鍵的除外
exec sp_msforeachtable @command1='truncate table ?'
,@whereand=' and (objectproperty(o.id,''TableHasForeignRef'')=0 and objectproperty(o.id,''TableHasForeignKey'')=0) '
--把有外鍵的數據刪除
exec sp_msforeachtable @command1='delete ?'
,@whereand=' and (objectproperty(o.id,''TableHasForeignRef'')=1 or objectproperty(o.id,''TableHasForeignKey'')=1) '
--數據庫所有表的信息
exec sp_MSforeachtable @command1="sp_spaceused '?'"
exec sp_msforeachtable "alter table ? check CONSTRAINT all" --開啟所有外鍵
exec sp_msforeachtable "alter table ? enable TRIGGER all" --開啟所有觸發器
--所有identity表復原為1的
exec sp_MSforeachtable @command1='dbcc checkident([?],reseed,0) ' ,@whereand= ' and (objectproperty(o.id,''TableHasIdentity'')=1) '
--重建所有索引
exec sp_MSforeachtable @command1='dBCC DBREINDEX ([?]) '
摘自 MasterLonely的专栏
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>