成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用SSIS創建同步數據庫數據任務

數據庫 SQL Server 數據庫運維
SSIS(SQL Server Integration Services)是用于生成企業級數據集成和數據轉換解決方案的平臺。使用 Integration Services 可解決復雜的業務問題。

 具體表現為:復制或下載文件,發送電子郵件以響應事件,更新數據倉庫,清除和挖掘數據以及管理 SQL Server 對象和數據。這些包可以獨立使用,也可以與其他包一起使用以滿足復雜的業務需求。Integration Services 可以提取和轉換來自多種源(如 XML 數據文件、平面文件和關系數據源)的數據,然后將這些數據加載到一個或多個目標。(摘自MSDN,更多詳細信息可參考:http://technet.microsoft.com/zh-cn/library/ms141026(v=sql.105).aspx)

 

下面我使用SSIS來演示一個實際例子。比如我有一個數據庫,出于備份數據或者其它的目的,會定期的對這個數據庫的數據遷移到其它的數據庫去。遷移的時候,有些新增的字段會被插入備份數據庫,而有些被修改過的字段也會在備份數據庫被修改。現在我們就用SSIS來完成這項任務。

首先在我源數據庫db_source和目標數據庫db_destination中運行以下SQL創建好需要的表,就以這一個表test_1來進行示范。

CREATE TABLE [dbo].[test_1](
    [Id] [int] IDENTITY(1,1) NOT NULL primary key,
    [Name] [varchar](50) NULL,
    [Age] [int] NULL
)

 

建好表好在源數據表中可以隨便加幾條記錄,目標數據庫暫時留空。

現在我們打開VS,創建一個Intergration Services Project。(注意:如果SQL Server 裝的是Express版的話是沒有這個項目工程模板的)

 

創建好工程后,在Control Flow這個Tab下拖入一個Data Flow Task,如下圖:

 

雙擊這個Data Flow Task,我們就會進入Data Flow這個Tab標簽中。

 

然后我們在左邊工具欄里找到OLE DB Source,繼續拖兩個OLE DB Source出來。分別給它們命名為Source DB和Destination DB。

 

將數據源拖出來后,雙擊它,可以對它進行一些設置,主要就是鏈接數據庫及選擇你要進行遷移的表或者視圖等設置,這里我就不詳細說明了。注意一點的是就像上圖所示,如果一個圖形上出現一個紅X的話說明設置有錯誤。

再來就是拖兩個Sort及一個Merge Join出來,將之前的數據源箭頭分別指向兩個Sort,***兩個Sort出來的數據同時輸入Merge Join中。

 

分別雙擊兩個Sort,鉤選表中的ID,對ID這個字段進行一次排序。因為Merge Join這個流程要求輸入的數據是已排序好的。這個排序也可以直接在數據源中對它們的輸出字段設置SortKeyPosition這個屬性來排序。(詳見:http://msdn.microsoft.com/zh-cn/library/ms137653.aspx

這里我們***次從Sort拉箭頭到Merge Join的時候,會讓我們選擇這個輸入的數據是作為左輸入還是右輸入,我們按照圖示的那樣,左邊的作為左輸入,右邊的作為右輸入。然后我們雙擊Merge Join,按照如下圖所示設置:

 

這里打鉤的是這個流程之后輸出的數據,Join Type需要選擇為Left outer join,因為左邊是我們的原始數據表,右邊是我們備份的表,右表可以看成是一個左表的一個子集,如果左表有的數據,右表沒有的,那些就是需要新插入備份數據庫的數據。

現在我們需要一個分支,即新的數據需要插入備份數據庫中,而已有的數據需要更新為新的值。我們從工具欄中拖入一個Conditional Split來進行這樣的分支處理。我們將Merge Sort中的輸出指向Conditional Split,然后雙擊Conditional Split,如下圖所示設置(注意條件一個是ISNULL,一個是非ISNULL)。

 

這時它們的輸入值就被分成兩種條件輸出,***我們再拖入一個OLE DB Destination來插入數據和一個OLE DB Command來更新數據庫,最終流程如下圖:

 

 

雙擊設置OLE DB Destionation,選擇好數據導入的目標數據庫中的表,這里需要注意的就是要鉤選Keep identity這個選項,因為我創建表的時候對ID字段使用了自增屬性。

雙擊設置OLE DB Command,首先在Connection Managers這個Tab中選擇好鏈接對象,然后在Component Properties這個選項卡中,設置你的SqlCommand屬性。如下圖:

 

這里的參數值都是用?號來代替,之后在Column Mappings這個Tab中設置代替值實際代替的列,如下圖:

 

至此,任務就創建完畢了,沒有編寫任何代碼,直接拖拉完成了。現在可以直接在VS中按F5運行看下效果,我們的目標數據表將插入源數據表中的值。然后我們修改一下原數據表,再來運行一下上面這個任務,就可以在目標數據庫中看到更改了。

 

那么如何去定時完成任務哩?這里可以用SQL Server Agent去調用上面我們寫好的包, 或者在Windows計劃任務中使用DTExec.exe去執行上面的任務。

原文鏈接:http://www.cnblogs.com/heqichang/archive/2012/09/19/2693214.html

【編輯推薦】

責任編輯:彭凡 來源: 博客園
相關推薦

2024-12-06 08:29:29

2020-08-31 07:00:00

數據庫數據庫同步

2023-04-18 18:22:31

開源工具數據庫

2011-07-27 14:41:43

JMeterMySQL

2010-08-27 09:59:51

SQL Server

2009-12-25 17:28:01

ADO Data 控件

2009-03-06 10:11:30

2019-08-13 15:52:34

數據庫同步遷移

2010-06-02 16:57:50

MySQL數據庫同步

2023-12-20 12:49:05

索引數據檢索數據庫

2011-05-26 15:03:47

catalog數據庫

2013-03-27 13:34:49

數據清洗

2020-09-21 11:30:28

CanalMySQL數據庫

2010-07-22 11:17:52

SQL Server數

2010-07-12 10:05:08

MemcachedPHP

2009-12-25 17:05:32

ADO.NET數據庫

2011-08-02 17:06:29

Oracle遠程數據庫創建DB Link

2020-05-10 16:36:08

存儲數據庫內存

2010-06-09 17:36:45

MySQL數據庫同步

2010-05-12 18:41:34

MySQL數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久草视频2| 国产美女视频黄 | 成人精品一区二区 | 你懂的在线视频播放 | 免费黄色片在线观看 | 涩涩视频在线看 | 亚洲国产成人精品女人久久久 | 久久久久久亚洲精品 | 日韩av成人在线 | 亚洲一区二区久久 | 亚洲狠狠 | 国产高清毛片 | 好姑娘影视在线观看高清 | 超碰伊人久久 | 国产精品久久久久aaaa九色 | 91精品国产91久久久久游泳池 | 日韩中文字幕在线观看视频 | 免费久久网 | 三级欧美 | 呦呦在线视频 | 中文字幕第一页在线 | 中文字幕一区二区三区在线观看 | 97超碰人人草 | 91精品久久久久久久久中文字幕 | 精品久久久久久久久久久久久久 | 日韩在线精品视频 | 欧美一区二区三区久久精品 | 亚洲精品乱码久久久久久蜜桃91 | 国产精品美女久久久 | 国产精品一区二区无线 | 国产影音先锋 | 久久久久久久久久久久久9999 | 日韩精品一区二区三区在线播放 | 亚洲欧美综合精品久久成人 | 亚洲美女视频 | 51ⅴ精品国产91久久久久久 | 亚洲成人福利视频 | 91小视频| 日日噜噜夜夜爽爽狠狠 | 欧美一级免费看 | 亚洲一区二区三区高清 |