2009-05-29 45 views
0

我想,這是很常見的任務。在Visual Foxpro中有一個表格,需要在SQL Server 2008中轉換爲表格B. 操作將會重複。可能會更改列名稱,刪除某些輸入列,更改列類型(字符串< => int),生成一些輸出列(GUID,標識)。此外正常化可能發生在哪裏2個輸入表的結果與數據透視表加入 - 讓我們下降約SSIS存在這種情況下,爲簡單起見關係表副本 - 微軟沙坑

我知道,可能有腳本,可以做我描述?

我已經寫C#程序讀取XML(片段下文),並執行製圖和出密鑰生成,但只是想是否所有 - 另一輪再造。

<Tables> 
    <Table inTbl="A" outTbl="B"> 
     <Keys> 
     <Key name="it_pk" type="GUID"> 
     </Keys> 
     <Mappings> 
     <Column inCol="hxkey" outCol="it_tariff" /> 
     <Column inCol="txt" outCol="it_description" /> 
     <Column inCol="uq1" outCol="it_uq1" /> 
     <Column inCol="date1" outCol="it_startdate" /> 
     <Column inCol="date2" outCol="it_stopdate" /> 
     </Mappings> 
    </Table> 
    </Tables> 

回答

1

這是非常正是SSIS是專爲,但它不是「通用」作爲當前的系統,但它很容易設置你所描述的東西。

你有一個控制流和數據流。您的控制流可以包含許多數據流(例如同步表A,然後B,然後C)和其他任務(例如移動文件,迭代,自定義腳本)。

在您的數據流定義您的源,目標和轉換。你的來源可以是任何東西。然後,您可以執行派生列並更改數據類型轉換來完成您所描述的內容。然後你的目的地需要轉換的數據(例如SQL表,SQL插入語句,SQL更新語句)

這是使用Visual Studio完成的,我估計你可以敲出一個簡單的包來在5分鐘內同步兩個表。然後,您可以使用SQL代理來安排它。

這被稱爲ETL BTW(提取,轉換和加載)的情況下,你要評估其他選擇,但我認爲SSIS起得非常好。

0

除了上面的出色答卷,SSIS是實現在這個空間程序化解決方案,即使在Visual Studio包設計工具是不合適的良好平臺。

其實平臺更加靈活,比建立在它之上的Visual Studio工具更好地完成。