新聞中心
本文我們主要介紹了SQL Server數(shù)據(jù)同步Merge的一個(gè)小漏洞以及解決的方案,通過(guò)以下的代碼讓我們來(lái)一起了解一下這一漏洞是怎么造成的以及它的解決方法吧。

成都創(chuàng)新互聯(lián)長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為富縣企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),富縣網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
假設(shè)有兩個(gè)數(shù)據(jù)a.Name NVarchar(40)和b.Name Varchar(40),代碼如下:
- MERGE a AS TARGET
- USING (
- SELECT
- id,name
- FROM b
- ) AS SOURCE ON (TARGET.[id] = SOURCE.[id])
- WHEN MATCHED AND CHECKSUM(TARGET.Name)!= CHECKSUM(CONVERT(NVARCHAR(40),SOURCE.[Name])) THEN
- UPDATE SET TARGET.[Name] = SOURCE.[Name],
- WHEN NOT MATCHED BY TARGET THEN
- INSERT (
- [id]
- ,[Name]
- ) VALUES(
- SOURCE.[ID]
- ,SOURCE.[Name]
- )
- WHEN NOT MATCHED BY SOURCE THEN
- Delete ....
當(dāng)b.name 以“-” 結(jié)束,如 “test-” 這種情況,merge不起作用。其他情況都還好。
需要把
- CHECKSUM(TARGET.Name)!= CHECKSUM(CONVERT(NVARCHAR(40),SOURCE.[Name]))
變成
- CHECKSUM(CONVERT(NVARCHAR(40),TARGET.Name))!= CHECKSUM(SOURCE.[Name])
后才可以同步。
關(guān)于SQL Server數(shù)據(jù)同步Merge的知識(shí)就介紹到這里,希望能夠帶給您一些收獲吧!
【編輯推薦】
- 如何啟用Master Data Services的Web服務(wù)
- 如何Master Data Service調(diào)用API創(chuàng)建Model
- SQL Server數(shù)據(jù)庫(kù)如何使用存儲(chǔ)過(guò)程造批量數(shù)據(jù)
- SQL Server數(shù)據(jù)庫(kù)如何將當(dāng)前行和上下行合并查詢
- 如何將SQL Server 2008的數(shù)據(jù)復(fù)制到MySQL數(shù)據(jù)庫(kù)
當(dāng)前題目:SQL Server數(shù)據(jù)同步Merge的一個(gè)BUG及解決方法
網(wǎng)頁(yè)路徑:http://www.dlmjj.cn/article/djgpgph.html


咨詢
建站咨詢
