国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

實(shí)例理解SQL中truncate和delete的區(qū)別

2020-07-25 12:47:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文以一個(gè)簡(jiǎn)單實(shí)例為大家介紹了SQL中truncate和delete的區(qū)別,幫助大家理解,具體內(nèi)容如下

---創(chuàng)建表Table1IF OBJECT_ID('Table1','U') IS NOT NULLDROP TABLE Table1GOCREATE TABLE Table1(ID INT NOT NULL,FOID INT NOT NULL)GO--插入測(cè)試數(shù)據(jù)INSERT INTO Table1VALUES(1,101),(2,102),(3,103),(4,104)GO---創(chuàng)建表Table2IF OBJECT_ID('Table2','U') IS NOT NULLDROP TABLE Table2GOCREATE TABLE Table2(FOID INT NOT NULL)GO--插入測(cè)試數(shù)據(jù)INSERT INTO Table2 VALUES(101),(102),(103),(104)GO SELECT * FROM Table1GO SELECT * FROM Table2GO

在Table1表中創(chuàng)建觸發(fā)器,當(dāng)表中的數(shù)據(jù)被刪除時(shí)同時(shí)刪除Table2表中對(duì)應(yīng)的FOID

CREATE TRIGGER TG_Table1 ON Table1AFTER DELETEASBEGIN DELETE FROM TA FROM Table2 TA INNER JOIN deleted TB ON TA.FOID=TB.FOID ENDGO
---測(cè)試DELETE刪除操作DELETE FROM Table1 WHERE ID=1GO---執(zhí)行觸發(fā)器成功,Table2表中的FOID=101的數(shù)據(jù)也被刪除SELECT * FROM Table1GOSELECT * FROM Table2

 

---測(cè)試TRUNCATE刪除操作TRUNCATE TABLE Table1GO---Table2中的數(shù)據(jù)沒(méi)有被刪除SELECT * FROM Table1GOSELECT * FROM Table2

 

---查看TRUNCATE和DELETE的日志記錄情況CHECKPOINTGOSELECT * FROM fn_dblog(NULL,NULL)GODELETE FROM Table2WHERE FOID=102GOSELECT * FROM fn_dblog(NULL,NULL)

 

在第四行記錄有一個(gè)lop_delete_rows,lcx_heap的刪除操作日志記錄

----TRUNCATE日志記錄CHECKPOINTGOSELECT * FROM fn_dblog(NULL,NULL)GOTRUNCATE TABLE Table2GOSELECT * FROM fn_dblog(NULL,NULL)GO

 

 TRUNCATE操作沒(méi)有記錄刪除日志操作

主要的原因是因?yàn)門RUNCATE操作不會(huì)激活觸發(fā)器,因?yàn)門RUNCATE操作不會(huì)記錄各行的日志刪除操作,所以當(dāng)你需要?jiǎng)h除一張表的數(shù)據(jù)時(shí)你需要考慮是否應(yīng)該如有記錄日志刪除操作,而不是根據(jù)個(gè)人的習(xí)慣來(lái)操作。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家區(qū)分SQL中truncate和delete的使用方法有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 辽宁省| 黑河市| 汶上县| 无棣县| 芦山县| 满洲里市| 额济纳旗| 侯马市| 玛多县| 裕民县| 依安县| 景德镇市| 新蔡县| 明光市| 平邑县| 崇义县| 黄龙县| 天门市| 巨野县| 涡阳县| 玛多县| 辛集市| 平定县| 彭阳县| 皮山县| 长泰县| 元朗区| 湟源县| 于田县| 海南省| 平罗县| 韶关市| 抚松县| 鸡东县| 长治市| 临清市| 临湘市| 吉林省| 枝江市| 九龙城区| 新民市|