婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 實例理解SQL中truncate和delete的區(qū)別

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

熱門標簽:400電話辦理泰安 安卡拉地圖標注app 電話機器人怎么代理商 零成本地圖標注賺錢 我要地圖標注數(shù)量有限制嗎 電銷需要外呼系統(tǒng)嗎 互聯(lián)網(wǎng)電話外呼系統(tǒng) 千呼電話機器人可以試用嗎 家庭農(nóng)場地圖標注名稱怎樣起名

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

---創(chuàng)建表Table1
IF OBJECT_ID('Table1','U') IS NOT NULL
DROP TABLE Table1
GO
CREATE TABLE Table1
(ID INT NOT NULL,
FOID INT NOT NULL)
GO

--插入測試數(shù)據(jù)
INSERT INTO Table1
VALUES(1,101),(2,102),(3,103),(4,104)
GO

---創(chuàng)建表Table2
IF OBJECT_ID('Table2','U') IS NOT NULL
DROP TABLE Table2
GO
CREATE TABLE Table2
(
FOID INT NOT NULL)
GO
--插入測試數(shù)據(jù)
INSERT INTO Table2 VALUES(101),(102),(103),(104)
GO 
SELECT * FROM Table1
GO 
SELECT * FROM Table2
GO

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

CREATE TRIGGER TG_Table1 ON Table1
AFTER DELETE
AS
BEGIN
 DELETE FROM TA FROM Table2 TA INNER JOIN deleted TB ON TA.FOID=TB.FOID 
END
GO

---測試DELETE刪除操作
DELETE FROM Table1 WHERE ID=1

GO
---執(zhí)行觸發(fā)器成功,Table2表中的FOID=101的數(shù)據(jù)也被刪除
SELECT * FROM Table1
GO
SELECT * FROM Table2

 

---測試TRUNCATE刪除操作
TRUNCATE TABLE Table1

GO
---Table2中的數(shù)據(jù)沒有被刪除
SELECT * FROM Table1
GO
SELECT * FROM Table2

 

---查看TRUNCATE和DELETE的日志記錄情況
CHECKPOINT
GO
SELECT * FROM fn_dblog(NULL,NULL)
GO
DELETE FROM Table2
WHERE FOID=102
GO
SELECT * FROM fn_dblog(NULL,NULL)

 

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

----TRUNCATE日志記錄
CHECKPOINT
GO
SELECT * FROM fn_dblog(NULL,NULL)
GO
TRUNCATE TABLE Table2
GO
SELECT * FROM fn_dblog(NULL,NULL)
GO

 

 TRUNCATE操作沒有記錄刪除日志操作

主要的原因是因為TRUNCATE操作不會激活觸發(fā)器,因為TRUNCATE操作不會記錄各行的日志刪除操作,所以當你需要刪除一張表的數(shù)據(jù)時你需要考慮是否應該如有記錄日志刪除操作,而不是根據(jù)個人的習慣來操作。

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

您可能感興趣的文章:
  • Oracle給用戶授權truncatetable的實現(xiàn)方案
  • delete from 表名與truncate table 表名區(qū)別
  • SQL中Truncate的用法
  • golang實戰(zhàn)之truncate日志文件詳解
  • tf.truncated_normal與tf.random_normal的詳細用法
  • smarty中改進truncate使其支持中文的方法
  • SQL Server中TRUNCATE事務回滾操作方法
  • 詳解SQL中drop、delete和truncate的異同
  • Mysql開啟慢SQL并分析原因
  • Truncate Table的用法講解

標簽:大同 池州 黃山 文山 濱州 新鄉(xiāng) 東營 來賓

巨人網(wǎng)絡通訊聲明:本文標題《實例理解SQL中truncate和delete的區(qū)別》,本文關鍵詞  實例,理解,SQL,中,truncate,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《實例理解SQL中truncate和delete的區(qū)別》相關的同類信息!
  • 本頁收集關于實例理解SQL中truncate和delete的區(qū)別的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 平谷区| 石门县| 宣武区| 临泽县| 漠河县| 嫩江县| 青海省| 中方县| 龙岩市| 错那县| 平遥县| 红安县| 宾川县| 黄梅县| 大名县| 宁安市| 八宿县| 桂阳县| 荔波县| 平潭县| 论坛| 临朐县| 北宁市| 周口市| 宜川县| 色达县| 凤台县| 东城区| 屯昌县| 福州市| 濉溪县| 板桥市| 共和县| 咸阳市| 冕宁县| 中方县| 承德市| 临城县| 惠水县| 珠海市| 青海省|