使用微軟未公開的儲存過程來執行
/*
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 ([?]) '
sql server 刪除資料庫中所有表資料
1.清空所有資料表中的記錄 exec sp msforeachtable command1 truncate table 2.刪除所有資料表 exec sp msforeachtable delete n 如果出現 資料表中有各種約束,就不能使用上面的方法來刪除資料了,只能使用以下方式 建立自定義儲...
sql語句 刪除資料庫所有表裡的資料
declare name nvarchar 255 sql nvarchar 4000 declare task cursor cursor local for 游標定義 select name from sysobjects where type u 獲取當前資料庫中的所有表的表名 open ta...
oracle刪除資料庫中的所有表
連線 1 先禁用資料庫中所有的約束 select alter table table name disable constraint constraint name from user constraints where constraint type r 執行所有約束禁用命令。2 清空所有表中的資...