新聞中心
SQL Server 2005數(shù)據(jù)庫(kù)操作中,數(shù)據(jù)修改操作是我們經(jīng)常要使用的,因此是必須要掌握的。以前為了動(dòng)態(tài)返回sp或批處理的結(jié)果,做為下一步處理的中繼數(shù)據(jù),總是使用臨時(shí)表和openQuery來實(shí)現(xiàn)。有時(shí)還實(shí)現(xiàn)不了,比如需要指定參數(shù)的sp.其實(shí)有INSERT EXEC很好解決我的這些困擾。Insert Exec 語(yǔ)句可以把存儲(chǔ)過程或動(dòng)態(tài)批處理返回的結(jié)果集直接保存到現(xiàn)有表中:INSERT INTO

碌曲ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
例如:
- INSERT INTO DBO.Result
- EXEC DBO.USP_MYSP @Parm1='A',@Parm2='B'
刪除數(shù)據(jù)只知道TRUNCATE和無WHERE DELETE區(qū)別。TRUNCATE日志最小化不觸發(fā)TRIGGER,所以要比日志全記錄的無WHERE DELETE要快。刪除大量數(shù)據(jù)的操作,肯定要指定WHERE的,能做的就是寫好語(yǔ)句,等著執(zhí)行完畢。在執(zhí)行過程會(huì)發(fā)生日志暴漲,鎖升級(jí)等狀況卻沒有考慮到。
假設(shè)MYTB是***的表,要?jiǎng)h除其中幾百萬(wàn)行,老辦法會(huì)執(zhí)行很久必然會(huì)有阻塞發(fā)生??梢杂萌缦路椒ǎ?/p>
- WHILE 11=1
- Begin
- Delete TOP(5000) From dbo.MYTB
- Where myCol='del';
- IF @@ROWCOUNT<5000
- BREAK;
- End
這樣第次刪除5000行,當(dāng)刪除到***一批數(shù)據(jù),不足5000行就跳出。鎖升級(jí)的可能大大降低。移除重復(fù)性數(shù)據(jù),這是一個(gè)老話題了,針對(duì)行重復(fù)、部分列重復(fù),無非就是DISTINCT,主鍵,臨時(shí)表之類的處理方法,在SQL2005里新引入的CTE和ROW_NUMBER函數(shù)可以提供一個(gè)清晰和清新的解決方法:
假設(shè)MYTB沒有主鍵列,有部分重復(fù)數(shù)據(jù)需要?jiǎng)h除,則可以:
- WITH DUPS AS
- (
- SELECT *,ROW_NUMBER() OVER (ORDER BY COL1,COL2,COL3) AS RN
- FROM DBO.MYTB
- )
- DELETE FROM DUPS WHERE RN>1
關(guān)于SQL Server 2005數(shù)據(jù)修改的心得就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】
- SQL Server 2008 MDX學(xué)習(xí)筆記之理解元數(shù)組
- SQL Server數(shù)據(jù)庫(kù)DataRelation的應(yīng)用示例詳解
- SQL Server 2005/2008中的CTE應(yīng)用之遞歸查詢
- SQL Server 2008數(shù)據(jù)庫(kù)學(xué)習(xí)筆記之MDX查詢示例
- 淺析SQL Server數(shù)據(jù)庫(kù)SSIS導(dǎo)入IIS日志的簡(jiǎn)單步驟
名稱欄目:SQLServer2005學(xué)習(xí)筆記之?dāng)?shù)據(jù)修改心得
當(dāng)前網(wǎng)址:http://fisionsoft.com.cn/article/cdjiohs.html


咨詢
建站咨詢
