校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > 實(shí)例理解SQL中truncate和delete的區(qū)別

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

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

本文以一個(gè)簡(jiǎn)單實(shí)例為大家介紹了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

--插入測(cè)試數(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
--插入測(cè)試數(shù)據(jù)
INSERT INTO Table2 VALUES(101),(102),(103),(104)
GO 
SELECT * FROM Table1
GO 
SELECT * FROM Table2
GO

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

---測(cè)試DELETE刪除操作
DELETE FROM Table1 WHERE ID=1

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

 

---測(cè)試TRUNCATE刪除操作
TRUNCATE TABLE Table1

GO
---Table2中的數(shù)據(jù)沒(méi)有被刪除
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)

 

在第四行記錄有一個(gè)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操作沒(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的使用方法有所幫助。

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

標(biāo)簽:大同 池州 黃山 文山 濱州 新鄉(xiāng) 東營(yíng) 來(lái)賓

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《實(shí)例理解SQL中truncate和delete的區(qū)別》,本文關(guān)鍵詞  實(shí)例,理解,SQL,中,truncate,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《實(shí)例理解SQL中truncate和delete的區(qū)別》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于實(shí)例理解SQL中truncate和delete的區(qū)別的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 海林市| 石阡县| 青神县| 石景山区| 资阳市| 礼泉县| 浪卡子县| 阳城县| 黄龙县| 上犹县| 泉州市| 乌什县| 宿松县| 宜良县| 扶余县| 慈利县| 鞍山市| 陆河县| 湾仔区| 洞头县| 黄骅市| 菏泽市| 冷水江市| 北京市| 宁城县| 通山县| 芦山县| 江安县| 灌阳县| 会宁县| 微博| 元阳县| 利川市| 乌拉特后旗| 夏邑县| 全南县| 灵川县| 丰台区| 睢宁县| 克拉玛依市| 天祝|