新聞中心
刪除是一項(xiàng)基礎(chǔ)性的數(shù)據(jù)操作,其執(zhí)行效率是決定系統(tǒng)效率的重要因素之一,在MSSQL中,刪除數(shù)據(jù)有哪些方式呢?本文將介紹一種新的思路,通過(guò)此思路大幅提高刪除效率。

創(chuàng)新互聯(lián)專注于績(jī)溪企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城系統(tǒng)網(wǎng)站開(kāi)發(fā)???jī)溪網(wǎng)站建設(shè)公司,為績(jī)溪等地區(qū)提供建站服務(wù)。全流程定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
MSSQL中,比較常見(jiàn)的刪除方式有 DELETE 語(yǔ)句和 TRUNCATE TABLE 兩種。DELETE語(yǔ)句用來(lái)刪除符合條件的行,它會(huì)根據(jù)SQL語(yǔ)句指定的條件,遍歷表中的每一行,凡是滿足條件的行,就刪除掉。而 TRUNCATE TABLE 則是清空表中所有數(shù)據(jù),非常簡(jiǎn)單快捷。
比較這兩種方式,很明顯 TRUNCATE TABLE 方式效率要高,可是它無(wú)法根據(jù)條件刪除數(shù)據(jù),而且 TRUNCATE TABLE 還會(huì)觸發(fā)表級(jí)別的完整性約束和觸發(fā)器,這樣的做法會(huì)耗費(fèi)不少時(shí)間。
那么事實(shí)上,還有另一種更為有效的刪除方法。我們可以定義一個(gè)新的臨時(shí)表,然后將要?jiǎng)h除的數(shù)據(jù)全部插入這個(gè)臨時(shí)表,最后從原表中刪除掉對(duì)應(yīng)的數(shù)據(jù)。在該方法中,INSERT INTO 和 DELETE 操作都執(zhí)行的非常快。具體的實(shí)現(xiàn)方式如下:
— 創(chuàng)建臨時(shí)表
CREATE TABLE #TEMP (
`id` int NOT NULL,
`Name` varchar(20) NULL
)
— 將要?jiǎng)h除的數(shù)據(jù)插入臨時(shí)表中
INSERT INTO #TEMP (ID, Name)
SELECT ID, Name
FROM TableName
WHERE 條件
— 刪除原數(shù)據(jù)
DELETE FROM TableName
WHERE ID IN (SELECT ID
FROM #TEMP
)
— 清除臨時(shí)表
DROP TABLE #TEMP
以上是一種實(shí)現(xiàn)快速刪除的新思路,在MSSQL中若涉及大量數(shù)據(jù)的刪除操作可以使用這種新方式來(lái)實(shí)現(xiàn),相較于TRUNCATE TABLE可以大幅提高刪除效率。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享名稱:MSSQL中刪除的選擇:新的思路提高效率(mssql選擇了刪除)
當(dāng)前網(wǎng)址:http://m.5511xx.com/article/cdcghpc.html


咨詢
建站咨詢
