SQL Delta實(shí)用案例介紹
概述
本篇文章主要介紹SQL DELTA的簡(jiǎn)單使用。為了能夠更加明了的說(shuō)明其功能,本文將通過(guò)實(shí)際項(xiàng)目中的案例加以介紹。
主要容
SQL DELTA 簡(jiǎn)介
創(chuàng)建SQL DELTA項(xiàng)目
使用SQLDELTA 進(jìn)行數(shù)據(jù)庫(kù)結(jié)構(gòu)同步
使用SQLDELTA進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)同步
生成數(shù)據(jù)報(bào)表
待續(xù)
SQLDELTA簡(jiǎn)介
SQLDELTA是一款便捷實(shí)用的數(shù)據(jù)庫(kù)管理工具。使用它可以找到現(xiàn)在數(shù)據(jù)庫(kù)項(xiàng)目與過(guò)去數(shù)據(jù)庫(kù)的異同點(diǎn)。并可以使你的產(chǎn)品數(shù)據(jù)庫(kù)與你的開(kāi)發(fā)數(shù)據(jù)庫(kù)同步,減少你因?yàn)橥綌?shù)據(jù)庫(kù)而進(jìn)行復(fù)雜的工作。還有一個(gè)好處是你可以使用它的對(duì)比和同步功能來(lái)為你目前的項(xiàng)目創(chuàng)建一個(gè)供測(cè)試使用的數(shù)據(jù)庫(kù)??梢耘康霓D(zhuǎn)移你的數(shù)據(jù)。
你可以從www.sqldelta.com上下載SQLDELTA工具。目前最新版本是SQL DELTA Version5.0。本文將采用SQL DELTA4 來(lái)做演示。
創(chuàng)建SQL DELTA項(xiàng)目
打開(kāi)”SQL DELTA 4”程序,在”Projects”選項(xiàng)卡中,選擇”New”,”Add New Project”,新建一個(gè)項(xiàng)目,為“JJKQ”。
通過(guò)右鍵新建的項(xiàng)目“Edit Project”,或者通過(guò)點(diǎn)擊右邊的向下箭頭,可以編輯項(xiàng)目。
在項(xiàng)目中,源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)配置如下圖所示:
圖1 SQLDELTA新建項(xiàng)目
注意: 在設(shè)置源數(shù)據(jù)庫(kù)連接與目標(biāo)數(shù)據(jù)庫(kù)連接時(shí),如果你是在一臺(tái)機(jī)器上操作的話,務(wù)必確保兩個(gè)數(shù)據(jù)庫(kù)不同名,或是在不同的數(shù)據(jù)庫(kù)實(shí)例下相同的數(shù)據(jù)庫(kù)名,也可以使用虛擬機(jī)。
接著,點(diǎn)擊圖1 右下角的“Project Options”,選擇要對(duì)比的對(duì)象,如圖2
圖2選擇對(duì)比的對(duì)象
點(diǎn)擊“OK”
在圖1所示的界面中,點(diǎn)擊左上角或右下角的”Compare DataBase”,對(duì)比兩個(gè)數(shù)據(jù)庫(kù)中我們選擇要對(duì)比的對(duì)象。
圖3 對(duì)比進(jìn)度條
在對(duì)比過(guò)程中SQLDETAL還將連接數(shù)據(jù)庫(kù),此時(shí)可能再次要求你輸入連接數(shù)據(jù)庫(kù)的密碼,如圖4
圖4 輸入數(shù)據(jù)庫(kù)連接密碼
使用SQLDELTA 進(jìn)行數(shù)據(jù)庫(kù)結(jié)構(gòu)同步
選擇選項(xiàng)卡“Structure”,將為我們列出源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)的異同點(diǎn),如圖5
圖5 數(shù)據(jù)庫(kù)對(duì)象對(duì)比結(jié)果
圖5上半部分列出了數(shù)據(jù)庫(kù)中的對(duì)象和對(duì)比的基本情況。下半部分則對(duì)每個(gè)對(duì)象對(duì)比的結(jié)果進(jìn)行了詳細(xì)的描述,其中=表示相同,<>表示不相同,三角號(hào)表示對(duì)象移動(dòng)的方向:向左表示源數(shù)據(jù)庫(kù)更新目標(biāo)數(shù)據(jù)庫(kù),向右表示目標(biāo)數(shù)據(jù)庫(kù)更新源數(shù)據(jù)庫(kù)。下面列舉兩個(gè)示例。
例1 :使用源數(shù)據(jù)庫(kù)的表更新目標(biāo)數(shù)據(jù)的表
選擇圖5種上半部分中type為數(shù)據(jù)表,statue為”<>”的行,對(duì)應(yīng)的將在其下半部分顯示出兩個(gè)不同源的數(shù)據(jù)表結(jié)構(gòu)哪里不一樣,如圖6所示”summary”選項(xiàng)卡中columns有1個(gè)”<>”。對(duì)應(yīng)選擇選項(xiàng)卡”Cols(1)”,如圖7 所示,我們將看到,原來(lái)列sortname中數(shù)據(jù)類型不一樣,源庫(kù)中是varchar(50),目標(biāo)庫(kù)中是char(50)
圖6
圖7
現(xiàn)在要使得目標(biāo)庫(kù)的sortname類型也為varchar(50),通過(guò)鉤選圖7上半部分的列表中對(duì)應(yīng)的”Update”列中的鉤選框(默認(rèn)情況下是鉤選的)。
點(diǎn)擊圖5中左上角的”Sync”同步圖標(biāo)。將生成數(shù)據(jù)庫(kù)同步語(yǔ)句,此時(shí)你下圖中右下角的”Run”按鈕即可完成同步操作。
圖8 生成同步數(shù)據(jù)庫(kù)的SQL語(yǔ)句
如果同步成功的話,會(huì)顯示如下語(yǔ)句:
Updating dbo.attendanceinout Table
dbo.attendanceinout Table Updated Successfully
*** Script Completed For LHL-PC\SQLEXPRESS.lw_att2000 ***
說(shuō)明更新目標(biāo)表成功。
當(dāng)我們關(guān)閉對(duì)話框時(shí),SQLDELTA將再次進(jìn)行一次數(shù)據(jù)庫(kù)結(jié)構(gòu)的比較,此時(shí)你將發(fā)現(xiàn)剛才不一樣的表結(jié)構(gòu),已經(jīng)同步,一樣了。
例2:使用目標(biāo)庫(kù)中的存儲(chǔ)過(guò)程更新源庫(kù)中同構(gòu)的存儲(chǔ)過(guò)程。
查看兩個(gè)存儲(chǔ)過(guò)程的異同點(diǎn)方法,跟例1 相似,這不再贅述。不同地方如圖9
圖9 存儲(chǔ)過(guò)程語(yǔ)句不一樣
現(xiàn)在如果我們直接按”Sync”按鈕,則會(huì)使用源庫(kù)的存儲(chǔ)過(guò)程更新目標(biāo)庫(kù)的。此時(shí)我們可以通過(guò)使用
中的Direction按鈕來(lái)改變要更新的庫(kù)。
點(diǎn)Direction按鈕,選擇”Update on (local).lw_att2000”,其中(local).lw_att2000為源庫(kù)。此時(shí)對(duì)象列表中的Action列對(duì)應(yīng)的值,將由”Update on LHL-PC\SQLEXRESS.lw_att2000”變?yōu)?#8221; Update on (local).lw_att2000”。然后再使用”Sync”按鈕同步。
注意:在同步SQL語(yǔ)句的時(shí)候,可以會(huì)同步錯(cuò)誤。此時(shí)你只要稍微修改下生成的同步SQL語(yǔ)句,然后再要更新的庫(kù)中運(yùn)行即可。
使用SQLDELTA進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)同步
選擇選項(xiàng)卡”Data”,點(diǎn)擊”Wizard”按鈕,選擇需要對(duì)比的數(shù)據(jù)的表,注意選擇的表必需要有主鍵,如圖10,選擇CHECKINOUT,主鍵為userid和checktime
圖10 選擇要對(duì)比數(shù)據(jù)的表
可以選擇”Next”根據(jù)自己的配置,對(duì)比數(shù)據(jù),也可以直接進(jìn)行對(duì)比。結(jié)果如圖11
圖11 數(shù)據(jù)對(duì)比結(jié)果
上半部分列表中,列Identical表示相同的記錄數(shù),Different表示不同的記錄數(shù),Missing表示源表中有但目標(biāo)表沒(méi)有的記錄數(shù),Additional表示源表中沒(méi)有但目標(biāo)表中有的記錄數(shù)。
如果此時(shí)我們要將目標(biāo)表中的記錄同步到源表中,只要按照結(jié)構(gòu)對(duì)比示例2 中存儲(chǔ)過(guò)程通過(guò)的過(guò)程一樣。
生成數(shù)據(jù)報(bào)表
選擇選項(xiàng)卡”Reports”
其中
Strucure是生成指定數(shù)據(jù)庫(kù)的結(jié)構(gòu)對(duì)象的報(bào)表
Comparison生成兩個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)對(duì)象對(duì)比結(jié)果的報(bào)表
Data生成兩個(gè)數(shù)據(jù)庫(kù)數(shù)據(jù)對(duì)比情況的報(bào)表
Combined是以上三者的組合選項(xiàng)。
待續(xù)
本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/hongdi/archive/2010/03/10/5363209.aspx
聯(lián)系客服