應用SSIS創立同步數據庫數據義務的辦法。本站提示廣大學習愛好者:(應用SSIS創立同步數據庫數據義務的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是應用SSIS創立同步數據庫數據義務的辦法正文
建好表好在源數據表中可以隨意加幾筆記錄,目的數據庫臨時留空。
如今我們翻開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去履行下面的義務。