SQL Server中使用DTS設計器進行資料轉移

iSQlServer發表於2009-02-11
以SQL Server中的Northwind示範資料庫為例,利用DTS設計器,進行資料的轉移。

轉移任務的步驟:

◆1. 新建目的資料庫NOrthwind_DTS

◆2. 啟用DTS設計器

在Enterprise Manager上右擊資料轉換服務圖表->新建包,將彈出一個新的視窗。

◆3. 建立資料來源與目的地

在第2步彈出的新視窗右側工具欄中找到Microsoft OLE DB Provider for SQL Server圖示,單擊,並在彈出的對話方塊的新建連結欄輸入Northwind,在資料庫(B)的下拉選單中選取Northwind選項。其他預設設定,確定。然後,以同樣的方法建立資料目的地,命名為Northwind_WH,其中資料庫(B)下拉選單選項中選取 Northwind_WH選項。

◆4. 轉移事實表

首先建立轉換資料任務:先單擊Northwind圖示,然後按住ctrl鍵再單擊Northwind_WH圖示,即同時選中第3步建立出來的Northwind圖示和Northwind_WH圖示,然後在工具欄上找到“轉換資料任務”工具按鈕,單擊即可以建立一個從Northwind資料來源指向Northwind_WH資料目的地的指標,我們可以新建一個批註文字框,為這個指標命名“Sales事實錶轉換資料任務”。

設定資料轉換任務:雙擊Sales事實表的轉換資料任務指標,在彈出的屬性對話方塊中單擊【源】標籤,在【描述(D):】中輸入“Sales事實錶轉換資料任務”,然後選中【SQL查詢(S):】單選按鈕,並輸入一下語句:

select e.EmployeeID, p.ProductID, s.SupplierID,

c.CustomerID, o.OrderDate, od.UnitPrice,

Od.Quantity, od.Discount

from Orders o,[Order Details] od, Employees e,

Products p, Suppliers s, Customers c

where (o.OrderID = od.OrderID) and

(o.EmployeeID = e.EmployeeID) and

(o.CustomerID = c.CustomerID) and

(od.ProductId = p.ProductID) and

(p.SupplierID = s.SupplierID);

我們可以點選“分析查詢”按鈕,檢查SQL語句的語法是否正確;也可以“預覽”查詢結果,以檢驗資料是否正確;單擊“生成查詢”即可啟用查詢設計器,根據需要對剛才的SQL語句進行修改。

單擊【目的】標籤,然後單擊“建立”按鈕,即可啟用一個包含SQL的對話方塊,我們將語句中的“新建表”修改成我們需要的表名“Sales”,並在最後新增一行:[Total] money NOT NULL。這時,DTS設計器已經為我們在Northwind_WH資料中新建了表Sales。

單擊【轉換】標籤,可以看到DTS設計器為我們指定的欄位之間的轉換任務。我們希望將UnitPrice*(1.0-Discount)*Quantity存入Total欄位,因此這裡只需要對Total欄位進行如下設定:

現在左側的“源”中選中Quantity、UnitPrice和Discount,然後選中右側“目的”的Total,選中之後,單擊“新建”按鈕,在彈出的對話方塊中選中ActiveX Script,點確定,將彈出轉換屬性對話方塊,點選此對話方塊中的“屬性”按鈕,啟用“ActiveX指令碼轉換屬性視窗,然後在此視窗的左側“語言(L):”下拉選單中選中VB Script. Language,修改右側的程式碼如下:

Function Main()

DTSDestination("Total") =

DTSSource("UnitPrice")*DTSSource("Quantity")*(1.0-DTSSource("Discount"))

Main = DTSTransformStat_OK

End Function

在這裡也可以點選“分析”按鈕,以檢查轉換函式是否正確書寫。也可以“測試”並在測試中“檢視結果”。最後,一路確定返回到“轉換資料任務屬性”對話方塊。

確定並完成設定,回到第一步的主視窗。

◆5.儲存DTS轉換資料任務包,在儲存的時候可以對此轉換資料任務做一些相應的設定。

◆6.執行包。與資料轉換相關的資訊都儲存在包之內,我們可以在適當時間執行包以將資料載入進目標資料庫。包可以重複使用,可以包含一個以上的錶轉換任務。如果希望每個一段時間後保能夠遞增式的將資料載入,則可以將時間或是其他的條件一併加入包內。

現在我們來執行剛才建立好的包,將資料從Northwind載入到Northwind_WH。在轉換資料任務下面的本地包目錄中找到剛才建立好的包的圖示,右鍵選取【執行包(X)】選項,按提示操作即可。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-548727/,如需轉載,請註明出處,否則將追究法律責任。

相關文章