我需要有人對以下專業知識:通過XML導出同步SQL Server數據
我建立了一個需要它,他們的.NET 1.1 WinForms應用程序之間同步30餘臺客戶端的面向網絡的系統。爲了儘量減少爲我們的理智的緣故,我們之間的互動,我建議使用XML,像這樣
SELECT *
FROM table1
FOR XML AUTO, XMLDATA
需要說明的是,我需要的主鍵保持在源和目標數據庫的之間的相同。有沒有一種導入XML的優雅方式?每次有數據同步時,我不想編寫醜陋的SQL來刪除並重新創建表和關係。有沒有辦法通過ADO.NET或Entity Framework 3來告訴數據庫「看,這是你的數據,請使用它而不是你現在擁有的」?
這裏的導出XML的例子:
<taxGroup>
<Schema name="Schema29" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="taxGroup" content="empty" model="closed">
<AttributeType name="taxGroupId" dt:type="i8"/>
<AttributeType name="regionId" dt:type="i8"/>
<AttributeType name="description" dt:type="string"/>
<AttributeType name="percentage" dt:type="number"/>
<AttributeType name="exportNumber" dt:type="string"/>
<attribute type="taxGroupId"/>
<attribute type="regionId"/>
<attribute type="description"/>
<attribute type="percentage"/>
<attribute type="exportNumber"/>
</ElementType>
</Schema>
<taxGroup xmlns="x-schema:#Schema29" taxGroupId="38000001" regionId="1482000001" description="VAT" percentage="0.1400" exportNumber=""/>
<taxGroup xmlns="x-schema:#Schema29" taxGroupId="38000002" regionId="1482000001" description="VAT2" percentage="0.1700" exportNumber=""/>
</taxGroup>
注:兩個DB的不必相互訪問。傳輸是通過安全HTTPRequest。
更新2:Winforms應用程序使用SQL2000,這使得使用同步框架是不可能的,顯然...
更新3:我們只是把它作爲一個因爲我被困不得不做的事情以這種方式。 .NET應用程序部署在各種第三方站點,每個站點都有一個單獨的數據庫副本並連接到Web應用程序的單獨實例。它是一個經銷商包,用於所有意圖和目的:實體店面組件和在線商店組件。有些第三方拒絕從SQL2000升級。
您是否閱讀過Microsoft Sync Framework? – goatshepard
我沒有,但在你問之後。是的,它似乎天堂般,直到我讀到sql2005R2或更高是必需的,並且客戶端使用SQL2000。 –
不幸的是,客戶端似乎期望您從頭開始重新開發SQL複製或MS Sync。我會投入精力讓他們升級,這將使他們花費更少,從長遠來看更有利於他們。如果他們不同意,請確保他們清楚地明白他們正在向您付費重新發明輪子,並將您的時間成本與新的SQL Server許可證的成本進行比較。 – Pondlife