| 導購 | 订阅 | 在线投稿
分享
 
 
 

在SQL Server數據庫中實現數據的轉移

來源:互聯網  2008-06-01 02:13:17  評論

以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)】選項,按提示操作即可。

以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)】選項,按提示操作即可。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有