SQL Delta实用案例介绍

概述

本篇文章主要介绍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的使用,一些高级的应用还有待我们去发掘使用。

SQL Delta实用案例介绍,很好的东西,帮了我不少忙的更多相关文章

  1. SQL Delta实用案例介绍

    概述 本篇文章主要介绍SQL DELTA的简单使用.为了能够更加明了的说明其功能,本文将通过实际项目中的案例加以介绍. 主要容 Ÿ   SQL DELTA 简介 Ÿ   创建SQL DELTA项目 Ÿ ...

  2. SQL Delta实用案例介绍 (对应软件)

    http://blog.csdn.net/hongdi/article/details/5363209

  3. awk 实用案例介绍

    awk 简介 • awk是 3 个姓氏的首字母,代表该语言的 3 个作者 • awk的版本有很多,包括: 旧版 awk,新版 awk(nawk), GNUawk(gawk)等 • awk程序有 awk ...

  4. 使用SQL Delta.v5.1.1.98.破解版同步数据结构

    概述 本篇文章主要介绍SQL DELTA的简单使用.为了能够更加明了的说明其功能,本文将通过实际项目中的案例加以介绍. 1. SQLDELTA简介 SQLDELTA是一款便捷实用的数据库管理工具.使用 ...

  5. InfluxDB 聚合函数实用案例

    InfluxDB 聚合函数实用案例 文章大纲 InfluxDB 简介 InfluxDB是GO语言编写的分布式时间序列化数据库,非常适合对数据(跟随时间变化而变化的数据)的跟踪.监控和分析.在我们的项目 ...

  6. Sql Server触发器案例(初学者学习案例)

    万事都是从最简单的一句“hello world”开始,所以我接下里介绍的sql触发器学习案例也从最简单的案例来说明分析: 1.首先创建表,这几张表你们也许很熟,在百度搜触发器案例都是使用这2张表 Cr ...

  7. JAVA实用案例之水印开发

    写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...

  8. JAVA实用案例之图片水印开发

    写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...

  9. JAVA实用案例之文件导出(JasperReport踩坑实录)

    写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六 ...

随机推荐

  1. Ubuntu16.04 install hadoop-2.8.1.tar.gz Cluster Setup

    环境说明: ip地址 用户名称 机器名称 机器角色 192.168.3.150 donny  donny-Lenovo-B40-80 Master + Salve 192.168.3.167 cqb ...

  2. linux虚拟机互访

    我们是按照一个小组有6个人在linux虚拟机中一个网卡配置三个ip:172.16.31.xxx;  192.168.180.xxx;   192.168.180.50+xxx;并且6台虚拟机还能够进行 ...

  3. win32线程栈溢出问题 (二)

    3.2.函数递归调用引发的栈溢出 写一段最简单的无穷递归代码,如下: #include "stdafx.h" void f(void) { f(); } int _tmain(in ...

  4. hihoCoder #1143 : 骨牌覆盖问题·一(矩阵乘法)

    1143 : 骨牌覆盖问题·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 骨牌,一种古老的玩具.今天我们要研究的是骨牌的覆盖问题: 我们有一个2xN的长条形棋盘,然 ...

  5. 10分钟手把手教你运用Python实现简单的人脸识别

    欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 前言:让我的电脑认识我 我的电脑只有认识我,才配称之为我的电脑! 今天,我们用Python实现高大上的人脸识别技术! Python里,简单的 ...

  6. pcl-设置多线段宽度和颜色

    显示点云有使用vtk的,有使用 ros 中riz ?库的,使用pcl显示点云数据比较方便,但是对于一些模型形状只能固定特定的效果,比如说直线段,只能绘制点到点两点之间的线段.但是项目需要绘制点1到点2 ...

  7. 影像优化 OptimizeRaster工具包介绍

    Esri OptimizeRasters是一个高效.可配置的开源工具包. OptimizeRasters提供了以下功能: 影像格式转换和压缩.支持输出优化栅格格式:MRF.分块TIFF.云存储优化Ge ...

  8. CODE FESTIVAL 2016 Grand Final 题解

    传送门 越学觉得自己越蠢--这场除了\(A\)之外一道都不会-- \(A\) 贪心从左往右扫,能匹配就匹配就好了 //quming #include<bits/stdc++.h> #def ...

  9. ModuleNotFoundError: No module named 'cv2'

    pip3 install opencv-python

  10. Android中显式意图和隐式意图的区别

    1.显式意图 可以直接通过名称开启指定的目标组件: 通过构造方法Intent(Context packageContext,class<?>cls)来实现. button_1 = (But ...