日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

快速删除数据库中所有表中的数据

發布時間:2023/12/10 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速删除数据库中所有表中的数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天又學到一招,可以快速刪除數據庫中所有的用戶表中的數據。我是個菜鳥,望各位大神多多指教

select 'truncate table ' + Name + ';' from sysobjects where xtype='U' order by name asc;

該條語句執行之后會將數據庫中所有的表都查詢出來,復制出來之后執行truncate語句即可

sysobjects

在數據庫內創建的每個對象(約束、默認值、日志、規則、存儲過程等)在表中占一行。只有在?tempdb?內,每個臨時對象才在該表中占一行。

列名數據類型描述
namesysname對象名。
Idint對象標識號。
xtypechar(2)對象類型。可以是下列對象類型中的一種:

C = CHECK 約束
D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束
L = 日志
FN = 標量函數
IF = 內嵌表函數
P = 存儲過程
PK = PRIMARY KEY 約束(類型是 K)
RF = 復制篩選存儲過程
S = 系統表
TF = 表函數
TR = 觸發器
U = 用戶表
UQ = UNIQUE 約束(類型是 K)
V = 視圖
X = 擴展存儲過程

uidsmallint所有者對象的用戶 ID。
infosmallint保留。僅限內部使用。
statusint保留。僅限內部使用。
base_schema_
ver
int保留。僅限內部使用。
replinfoint保留。供復制使用。
parent_objint父對象的對象標識號(例如,對于觸發器或約束,該標識號為表 ID)。
crdatedatetime對象的創建日期。
ftcatidsmallint為全文索引注冊的所有用戶表的全文目錄標識符,對于沒有注冊的所有用戶表則為 0。
schema_verint版本號,該版本號在每次表的架構更改時都增加。
stats_schema_
ver
int保留。僅限內部使用。
typechar(2)對象類型。可以是下列值之一:

C = CHECK 約束?
D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束?
FN = 標量函數
IF = 內嵌表函數
K = PRIMARY KEY 或 UNIQUE 約束?
L = 日志
P = 存儲過程
R = 規則
RF = 復制篩選存儲過程
S = 系統表?
TF = 表函數
TR = 觸發器
U = 用戶表
V = 視圖
X = 擴展存儲過程

userstatsmallint保留。
sysstatsmallint內部狀態信息。
indexdelsmallint保留。
refdatedatetime留作以后使用。
versionint留作以后使用。
deltrigint保留。
instrigint保留。
updtrigint保留。
seltrigint保留。
categoryint用于發布、約束和標識。
cachesmallint保留。

truncate和不帶where子句的delete,?以及drop都會刪除表內的數據?

不同點:?
1.?truncate和?delete只刪除數據不刪除表的結構(定義)?
????drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index);?依賴于該表的存儲過程/函數將保留,但是變為invalid狀態.?
2.delete語句是dml,這個操作會放到rollback?segement中,事務提交之后才生效;如果有相應的trigger,執行的時候將被觸發.?
???truncate,drop是ddl,?操作立即生效,原數據不放到rollback?segment中,不能回滾.?操作不觸發trigger.?
3.delete語句不影響表所占用的extent,?高水線(high?watermark)保持原位置不動?
??顯然drop語句將表所占用的空間全部釋放?
??truncate?語句缺省情況下見空間釋放到?minextents個?extent,除非使用reuse?storage;???truncate會將高水線復位(回到最開始).?
4.速度,一般來說:?drop>;?truncate?>;?delete?
5.安全性:小心使用drop?和truncate,尤其沒有備份的時候.否則哭都來不及?
使用上,想刪除部分數據行用delete,注意帶上where子句.?回滾段要足夠大.?
想刪除表,當然用drop?
想保留表而將所有數據刪除.?如果和事務無關,用truncate即可.?如果和事務有關,或者想觸發trigger,還是用delete.?
如果是整理表內部的碎片,可以用truncate跟上reuse?stroage,再重新導入/插入數據?

轉載于:https://www.cnblogs.com/zheyidetianshi/archive/2012/02/18/deletealltablefromonedatabase.html

總結

以上是生活随笔為你收集整理的快速删除数据库中所有表中的数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。