Visual Studio 2008中如何比较二个数据库的架构【Schema】和数据【Data】并同步

简介: 使用场景: 在团队开发中,每一个人都有可能随时更新数据库,这时候数据库中数据和架构等信息都会发生变化。如果更新不及时,就会发生数据错误或数据丢失的风险,影响团队的开发效率和 项目进度,这时候我们该怎么办呢?VS2008 Team System版本中就提供了解决这个问题的工具。

使用场景:

在团队开发中,每一个人都有可能随时更新数据库,这时候数据库中数据和架构等信息都会发生变化。如果更新不及时,就会发生数据错误或数据丢失的风险,影响团队的开发效率和 项目进度,这时候我们该怎么办呢?VS2008 Team System版本中就提供了解决这个问题的工具。使用这个工具,我们可以比较数据库更改前后的架构和数据的具体改变信息,并且可以生成数据和架构更新脚本,在原来的老数据库中执行脚本,就可以将数据库更新到最新,而且数据库中没有变更的数据和架构不会受到影响。  

比较之前,首先一定要备份目标数据库【Target Database,以防万一数据更新失败。将目标数据库【Target Database】和源数据库【Source Database】一起附加到SQL Server 2005中,然后在VS2008中分别添加二个连接字符串,连接这二个数据库。  

建议:将从服务器【SVN】上Down下来的数据库作为Target Database,将我们本机上更新过的数据库作为Source Database,进行架构和数据比较并更新,确认更新成功后,提交Target Database至服务器。  

在本实例中ISACADB为待更新的目标数据库,ISACADB-S为待比较的源数据库,比较更新后的结果是ISACADB被更新到与ISACADB-S一致。

 

VS2008中比较二个数据库的架构【Schema】并更新的步骤:

 

一、打开VS2008,点击菜单上的Data==>Schema Compare==>New Schema Comparison…  

img_64a41f7e1daea241b405104ee31e9d6e.png

 

二、在弹出窗体中,按下图分别在Source Schema下和Target Schema下选择相应的Database,其中Source Schema下选择的数据库【ISACADB-S】是待比较的数据源,是Target Schema下选择的数据库【ISACADB】被更新的依据。  

img_03ea6c5dd890e3788bc38f4c7b888b4d.png

 

三、选择好数据库后,点击OK按钮,开始执行架构比较,完成后,显示如下界面。

选择图中上面的数据库表或存储过程,下面的窗口二侧会分别以不同颜色高亮显示SourceTarget Database中不相同部分的内容。  

img_2ad44c93af44834192b01e743c2d467f.png

 

四、点击VS2008中如下图的工具栏中的紫色方框内的按钮【Show Schema Update Script】,会在vs2008的下方显示整个数据库的全部更新脚本;点击其右侧的刷新【Refresh】按钮,则会重新进行比较;点击Write Updates按钮,会直接执行更新,使Target Database的架构与Source Database一致,点击Write Updates左侧的按钮,可以重新设置Compare的二个Database;最左侧的按钮可以设置显示那些比较的结果。  

img_c9e660fbc0b5f5e5779c63c6ed69b6d4.png

 

img_abb98edcdade4cfafce08d1e6ff5e4d9.png

 

五、导出脚本,可以直接复制上衣步骤中的脚本,也可以点击VS2008中如下图的工具栏的二个按钮,Export To Editor是将脚本导出到VS2008中的编辑器中,Export To File则是将脚本导出到文件中。  

img_8f213a294a1c88a7cf1f09e347fc070d.png

 

六、执行上一步导出的脚本,将Target Database的架构更新到与Source Database的架构一致。

 

七、Target Database执行更新脚本成功后,检查Target Database的架构更新是否正确。方法是:将更新后的Target DatabaseSource Database进行架构比较,看比较结果是否完全一致,如果不一致,则检查错误原因;或者恢复原来的Target Database【已备份】,重新进行更新,直到更新正确。

 

VS2008中比较二个数据库的数据并更新的步骤:

 

一、打开VS2008,点击菜单上的Data==> Data Compare==>New Data Comparison…  

img_cc99f8a405e20788717553524f2390b6.png

 

二、在弹出窗体中,按下图分别在Source Database下和Target Database下选择相应的Database,其中Source Database下选择的数据库【ISACADB-S】是待比较的数据源,是Target Database下选择的数据库【ISACADB】被更新的依据。并在下面设置比较条件,点击Next按钮则可以进一步设置要比较的TablesStoredProceduresViews等,点击Finish则直接按默认【只比较Tables】进行数据比较。  

img_348ece40220bd7b6a0fa295c48a8a317.png

 

三、点击Finish按钮后,开始执行数据比较,完成后,显示如下界面。  

img_a5a7d328ba2f83f842d40c049c5dfc2d.png

 

四、下面的所有步骤和上面的架构比较时基本一样,此处省略。

补充:

Visual Studio 2005 Team System版本中默认是没有上面的功能的,需要安装下面的插件才能使用以上功能。

Visual Studio 2005 Team Edition for Database Professionals Add-on for Visual Studio 2005 Team Suite Edition下载地址:

http://www.microsoft.com/downloads/details.aspx?familyid=7de00386-893d-4142-a778-992b69d482ad&displaylang=en

相关文章
|
4天前
|
存储 SQL 监控
Visual Basic与数据库交互:实现数据访问和管理
【4月更文挑战第27天】本文探讨了使用Visual Basic进行数据库编程的基础,包括数据库基础、连接、数据访问技术如ADO.NET,数据绑定,事务处理,存储过程与视图。还强调了性能优化、安全性、测试与调试,以及持续维护的重要性。通过掌握这些概念和技巧,开发者能构建高效、可靠的数据驱动应用。
|
8天前
|
关系型数据库 Apache 流计算
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
本文介绍了如何将数据从 OceanBase 迁移到阿里云数据库 SelectDB 内核版 Apache Doris。提供 3 种数据同步方法 1. 使用 DataX,下载 DataX 并编写配置文件,通过 OceanBaseReader 和 DorisWriter 进行数据迁移。 2. 利用 Apache Doris 的 Catalog功 能,将 OceanBase 表映射到 Doris 并插入数据。 3. 通过Flink CDC,设置 OceanBase 环境,配置 Flink 连接器,实现实时数据同步。
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
|
1天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在使用 DataWorks 数据集成同步 PostgreSQL 数据库中的 Geometry 类型数据如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
7 0
|
2天前
|
分布式计算 关系型数据库 大数据
MaxCompute产品使用合集之怎么才可以将 PostgreSQL 中的 geometry 空间类型字段同步到 MaxCompute 或另一个 PostgreSQL 数据库
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
7天前
|
SQL 关系型数据库 API
从API获取数据并将其插入到PostgreSQL数据库:步骤解析
使用Python处理从API获取的数据并插入到PostgreSQL数据库:安装`psycopg2`,建立数据库连接,确保DataFrame与表结构匹配,然后使用`to_sql`方法将数据插入到已存在的表中。注意数据准备、权限设置、性能优化和安全处理。
|
13天前
|
存储 关系型数据库 MySQL
如何处理爬取到的数据,例如存储到数据库或文件中?
处理爬取的数据,可存储为txt、csv(适合表格数据)或json(适合结构化数据)文件。若需存储大量数据并执行复杂查询,可选择关系型(如MySQL)或非关系型(如MongoDB)数据库。以MySQL为例,需安装数据库和Python的pymysql库,创建数据库和表,然后编写Python代码进行数据操作。选择存储方式应考虑数据类型、数量及后续处理需求。
21 1
|
14天前
|
SQL 关系型数据库 MySQL
关系型数据库插入数据的语句
使用SQL的`INSERT INTO`语句向关系型数据库的`students`表插入数据。例如,插入一个`id`为1,`name`为'张三',`age`为20的记录:`INSERT INTO students (id, name, age) VALUES (1, '张三', 20)。如果`id`自增,则可简化为`INSERT INTO students (name, age) VALUES ('张三', 20)`。
21 2
|
14天前
|
SQL 存储 Oracle
关系型数据库查询数据的语句
本文介绍了关系型数据库中的基本SQL查询语句,包括选择所有或特定列、带条件查询、排序、分组、过滤分组、表连接、限制记录数及子查询。SQL还支持窗口函数、存储过程等高级功能,是高效管理数据库的关键。建议深入学习SQL及相应数据库系统文档。
9 2
|
18天前
|
前端开发 API 数据库
Django(五):如何在Django中通过API提供数据库数据给前端
Django(五):如何在Django中通过API提供数据库数据给前端
|
10天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。