最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年02月16日 14:18:21   投稿:lijiao  
這篇文章主要介紹了實例理解SQL中truncate和delete的區(qū)別,truncate和delete兩者易混,本文就為大家進行區(qū)分兩者的異同,感興趣的小伙伴們可以參考一下

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

---創(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

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

在Table1表中創(chuàng)建觸發(fā)器,當表中的數據被刪除時同時刪除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的數據也被刪除
SELECT * FROM Table1
GO
SELECT * FROM Table2

 

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

GO
---Table2中的數據沒有被刪除
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操作不會記錄各行的日志刪除操作,所以當你需要刪除一張表的數據時你需要考慮是否應該如有記錄日志刪除操作,而不是根據個人的習慣來操作。

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

相關文章

  • SQL查詢效率注意事項小結

    SQL查詢效率注意事項小結

    SQL查詢效率注意事項小結,需要的朋友可以參考下。
    2011-12-12
  • SQL中的left join right join

    SQL中的left join right join

    數據庫常見的join方式有三種:inner join, left outter join, right outter join(還有一種full join,因不常用,本文不討論)。這三種連接方式都是將兩個以上的表通過on條件語句,拼成一個大表。
    2009-06-06
  • 根據多條件查詢臨時表 想得到不同結果集的方法

    根據多條件查詢臨時表 想得到不同結果集的方法

    很多情況下,需要采用多個參數來查詢一張臨時表,每個參數都要求得到不同的臨時表結果集。而往往某些參數并不對應這張臨時表中的字段,而是對應與該臨時表ID關聯的另一張表的字段。
    2009-11-11
  • SQL Server 2016 查詢存儲性能優(yōu)化小結

    SQL Server 2016 查詢存儲性能優(yōu)化小結

    SQL Server 2016已經發(fā)布了有半年多,相信還有很多小伙伴還沒有開始使用,今天我們來談談SQL Server 2016 查詢存儲性能優(yōu)化,希望大家能夠喜歡
    2016-01-01
  • SQL恢復master數據庫方法 只有mdf文件的數據庫如何恢復

    SQL恢復master數據庫方法 只有mdf文件的數據庫如何恢復

    這篇文章主要為大家詳細介紹了SQL恢復master數據庫方法,還分析了只有mdf文件的數據庫如何進行恢復的情況,也就是沒有l(wèi)og文件的數據庫文件恢復方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • SQL 平均數統計

    SQL 平均數統計

    sql下求列的平均數的語句
    2008-12-12
  • MS SQL Server游標(CURSOR)的學習使用

    MS SQL Server游標(CURSOR)的學習使用

    使用MS SQL Server這樣久,游標一直沒有使用過。以前都是使用WHILE循環(huán)加臨時表來實現。剛剛聯系個示例了解到游標概念與語法
    2014-06-06
  • SQL SERVER連線查詢數據源IP地址及開啟SQL的IP地址連線方法

    SQL SERVER連線查詢數據源IP地址及開啟SQL的IP地址連線方法

    這篇文章主要介紹了SQL SERVER連線查詢數據源IP地址及開啟SQL的IP地址連線方法,文中通過圖文結合的形式給大家介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2024-06-06
  • SQLite3數據庫的介紹和使用教程(面向業(yè)務編程-數據庫)

    SQLite3數據庫的介紹和使用教程(面向業(yè)務編程-數據庫)

    這篇文章主要介紹了SQLite3數據庫的介紹和使用(面向業(yè)務編程-數據庫),本文從SQLite3的庫的獲取、工程管理、SQL語句介紹、C語言編程四個角度闡述了SQLite3數據庫的實際應用,需要的朋友可以參考下
    2023-05-05
  • SQL?Server?2022新功能之如何將數據庫備份到S3兼容的對象存儲

    SQL?Server?2022新功能之如何將數據庫備份到S3兼容的對象存儲

    本文介紹了如何使用SQL Server 2022將數據庫備份到S3兼容的對象存儲,主要功能包括配置S3連接器、創(chuàng)建憑據、使用URL進行備份和恢復,并支持加密和壓縮選項,此外,還討論了在Linux平臺上的特殊配置要求和區(qū)域參數的使用,感興趣的朋友一起看看吧
    2025-02-02

最新評論

徐汇区| 固原市| 万荣县| 攀枝花市| 岢岚县| 杨浦区| 高青县| 红安县| 上杭县| 桐乡市| 鄂托克前旗| 河间市| 香港| 嘉峪关市| 彭阳县| 淮滨县| 九江市| 乌鲁木齐县| 紫云| 习水县| 宜城市| 肃宁县| 澄江县| 调兵山市| 错那县| 镇江市| 白银市| 桂平市| 肥东县| 紫阳县| 罗源县| 泸西县| 榆社县| 黄山市| 岗巴县| 突泉县| 嘉祥县| 广南县| 海兴县| 二连浩特市| 界首市|