成熟丰满熟妇高潮XXXXX,人妻无码AV中文系列久久兔费 ,国产精品一国产精品,国精品午夜福利视频不卡麻豆

您好,歡迎來(lái)到九壹網(wǎng)。
搜索
您的當(dāng)前位置:首頁(yè)實(shí)例理解SQL中truncate和delete的區(qū)別

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

來(lái)源:九壹網(wǎng)

本文以一個(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)操作。

Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號(hào)-2

違法及侵權(quán)請(qǐng)聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市萬(wàn)商天勤律師事務(wù)所王興未律師提供法律服務(wù)