概述
本篇文章主要介紹SQL DELTA的簡單使用。為了能夠更加明了的說明其功能,本文將通過實際項目中的案例加以介紹。
主要容
- SQL DELTA 簡介
- 創建SQL DELTA項目
- 使用SQLDELTA 進行數據庫結構同步
- 使用SQLDELTA進行數據庫數據同步
- 生成數據報表
- 待續
SQLDELTA簡介
SQLDELTA是一款便捷實用的數據庫管理工具。使用它可以找到現在數據庫項目與過去數據庫的異同點。並可以使你的產品數據庫與你的開發數據庫同步,減少你因為同步數據庫而進行復雜的工作。還有一個好處是你可以使用它的對比和同步功能來為你目前的項目創建一個供測試使用的數據庫。可以批量的轉移你的數據。
你可以從www.sqldelta.com上下載SQLDELTA工具。目前最新版本是SQL DELTA Version5.0。本文將采用SQL DELTA4 來做演示。
創建SQL DELTA項目
打開”SQL DELTA 4”程序,在”Projects”選項卡中,選擇”New”,”Add New Project”,新建一個項目,為“JJKQ”。
通過右鍵新建的項目“Edit Project”,或者通過點擊右邊的向下箭頭,可以編輯項目。
在項目中,源數據庫和目標數據庫配置如下圖所示:
圖1 SQLDELTA新建項目
注意:在設置源數據庫連接與目標數據庫連接時,如果你是在一台機器上操作的話,務必確保兩個數據庫不同名,或是在不同的數據庫實例下相同的數據庫名,也可以使用虛擬機。
接着,點擊圖1 右下角的“Project Options”,選擇要對比的對象,如圖2
圖2選擇對比的對象
點擊“OK”
在圖1所示的界面中,點擊左上角或右下角的”Compare DataBase”,對比兩個數據庫中我們選擇要對比的對象。
圖3 對比進度條
在對比過程中SQLDETAL還將連接數據庫,此時可能再次要求你輸入連接數據庫的密碼,如圖4
圖4 輸入數據庫連接密碼
使用SQLDELTA 進行數據庫結構同步
選擇選項卡“Structure”,將為我們列出源數據庫和目標數據庫的異同點,如圖5
圖5 數據庫對象對比結果
圖5上半部分列出了數據庫中的對象和對比的基本情況。下半部分則對每個對象對比的結果進行了詳細的描述,其中=表示相同,<>表示不相同,三角號表示對象移動的方向:向左表示源數據庫更新目標數據庫,向右表示目標數據庫更新源數據庫。下面列舉兩個示例。
例1:使用源數據庫的表更新目標數據的表
選擇圖5種上半部分中type為數據表,statue為”<>”的行,對應的將在其下半部分顯示出兩個不同源的數據表結構哪里不一樣,如圖6所示”summary”選項卡中columns有1個”<>”。對應選擇選項卡”Cols(1)”,如圖7 所示,我們將看到,原來列sortname中數據類型不一樣,源庫中是varchar(50),目標庫中是char(50)
圖6
圖7
現在要使得目標庫的sortname類型也為varchar(50),通過鈎選圖7上半部分的列表中對應的”Update”列中的鈎選框(默認情況下是鈎選的)。
點擊圖5中左上角的”Sync”同步圖標。將生成數據庫同步語句,此時你下圖中右下角的”Run”按鈕即可完成同步操作。
圖8 生成同步數據庫的SQL語句
如果同步成功的話,會顯示如下語句:
Updating dbo.attendanceinout Table
dbo.attendanceinout Table Updated Successfully
*** Script Completed For LHL-PC/SQLEXPRESS.lw_att2000 ***
說明更新目標表成功。
當我們關閉對話框時,SQLDELTA將再次進行一次數據庫結構的比較,此時你將發現剛才不一樣的表結構,已經同步,一樣了。
例2:使用目標庫中的存儲過程更新源庫中同構的存儲過程。
查看兩個存儲過程的異同點方法,跟例1 相似,這不再贅述。不同地方如圖9
圖9 存儲過程語句不一樣
現在如果我們直接按”Sync”按鈕,則會使用源庫的存儲過程更新目標庫的。此時我們可以通過使用
中的Direction按鈕來改變要更新的庫。
點Direction按鈕,選擇”Update on (local).lw_att2000”,其中(local).lw_att2000為源庫。此時對象列表中的Action列對應的值,將由”Update on LHL-PC/SQLEXRESS.lw_att2000”變為” Update on (local).lw_att2000”。然后再使用”Sync”按鈕同步。
注意:在同步SQL語句的時候,可以會同步錯誤。此時你只要稍微修改下生成的同步SQL語句,然后再要更新的庫中運行即可。
使用SQLDELTA進行數據庫數據同步
選擇選項卡”Data”,點擊”Wizard”按鈕,選擇需要對比的數據的表,注意選擇的表必需要有主鍵,如圖10,選擇CHECKINOUT,主鍵為userid和checktime
圖10 選擇要對比數據的表
可以選擇”Next”根據自己的配置,對比數據,也可以直接進行對比。結果如圖11
圖11 數據對比結果
上半部分列表中,列Identical表示相同的記錄數,Different表示不同的記錄數,Missing表示源表中有但目標表沒有的記錄數,Additional表示源表中沒有但目標表中有的記錄數。
如果此時我們要將目標表中的記錄同步到源表中,只要按照結構對比示例2 中存儲過程通過的過程一樣。
生成數據報表
選擇選項卡”Reports”
其中
Strucure是生成指定數據庫的結構對象的報表
Comparison生成兩個數據庫結構對象對比結果的報表
Data生成兩個數據庫數據對比情況的報表
Combined是以上三者的組合選項。
待續
本文只是簡單介紹了SQLDELTA的使用,一些高級的應用還有待我們去發掘使用。