一、前言

开发的时候在测试服务器上和线网服务器上面都有我们的数据库,当我们在线网上面修改或者新增一些字段后,线网的数据库也需要更新,这个时候根据表的修改记录,然后在线网上面一个一个增加修改很浪费效率而且容易出错,那有没有更好的方法解决这个问题呢?有!那就是VS自带的架构比较功能。

个人觉得在初期一个开发除了掌握必要的开发知识外,对开发工具的使用和了解程度同样是至关重要的。就想对API了解程度一样,熟练的使用让你开发起来得心趁手。


备注说明:本教程同样适用数据比较(打开VS>工具>SQL Server>新建数据比较)


二、关于

从​​Visual Studio 2005​​版本开始,VS就开始支持“比较和同步数据库架构”,微软如此早就实现这个功能说明这是一个我们会经常用到一个功能。这个功能我们自己也可以实现(在SQL Server中实现视图、存储过程及表结构的比较),也可以将其打包成一个工具(自己开发MSSQL架构和数据对比小工具)。对于新手来说稍微麻烦一些,这里就不做多说,感兴趣的可以看看。


 


三、开始演练

本次演练使用VS2017自带的SQL Server工具比较两个数据库的架构并同步目标的架构和源的架构。


 


1.准备两个要比较的数据库的结构

我这里有两个数据库,一个是本地的,一个是测试服务器的。本次演练我将连接这两个数据库。


 


2.连接源数据库和目标数据库

所谓的源数据库和目标数据库也就是字面的意思(源>目标)将源数据中新增修改的同步到目标数据库中。

首先我们打开VS>工具>SQL Server>新建架构比较。

Visual Studio2017 数据库架构比较_服务器

选择源

Visual Studio2017 数据库架构比较_sql_02

我们选择数据库,点击选择连接

Visual Studio2017 数据库架构比较_服务器_03

连接源服务器并验证,别忘记了选择数据库

Visual Studio2017 数据库架构比较_数据_04

选择目标 操作和选择源一样

Visual Studio2017 数据库架构比较_服务器_05

连接目标服务器并验证,别忘记了选择数据库

Visual Studio2017 数据库架构比较_sql_06


 


3.比较源数据库和目标数据库

源数据库和目标数据库都选择完成后,点击左上角“比较”开始比较两个数据库

Visual Studio2017 数据库架构比较_服务器_07

下面就是源数据库和目标数据库的差异

Visual Studio2017 数据库架构比较_sql_08


 


4.更新目标数据库

比较完成后选择左上角的更新,就会更新我们选择要更新的字段数据(图中红标圈住的字段)

Visual Studio2017 数据库架构比较_服务器_09

Visual Studio2017 数据库架构比较_数据_10

数据的同步其实就是差异生成对应的脚本,然后在目标数据库执行。选择查看结果就可以看到部署脚本

Visual Studio2017 数据库架构比较_数据_11

看到提示我们知道更新完毕了。然后我们再执行“比较”看一下差异。

Visual Studio2017 数据库架构比较_服务器_12

这个时候我们会发现刚才同步的已经同步完成了,如果想全部同步,全部勾选就是啦,架构比较就是这么简单,本次演练就到这里。


 


四、常见的问题

1.为什么我的界面和你的不一样

答:我这vs2017带的工具,相比较其他版本可能会存在些差异,但是大体操作是一样的。

2.为什么有些我会更新失败

答:这个问题我也遇到过,这是因为可能因为这个操作会导致目标数据丢失,或者是因为权限不足等原因。这个我是手动操作的,你们要是知道好的解决办法可以留言给我哦。


复制代码

(48,1): SQL72014: .Net SqlClient Data Provider: 消息 50000,级别 16,状态 127,第 6 行 检测到行。由于可能丢失数据,正在终止架构更新。
(43,0): SQL72045: 脚本执行错误。执行的脚本:
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[CR_ClassRingNewsFeed])
RAISERROR (N'检测到行。由于可能丢失数据,正在终止架构更新。', 16, 127)
WITH NOWAIT;

执行批处理时出错。


参考:​​演练:比较两个数据库的架构​


 



搜索

复制


 


 


一、前言

开发的时候在测试服务器上和线网服务器上面都有我们的数据库,当我们在线网上面修改或者新增一些字段后,线网的数据库也需要更新,这个时候根据表的修改记录,然后在线网上面一个一个增加修改很浪费效率而且容易出错,那有没有更好的方法解决这个问题呢?有!那就是VS自带的架构比较功能。

个人觉得在初期一个开发除了掌握必要的开发知识外,对开发工具的使用和了解程度同样是至关重要的。就想对API了解程度一样,熟练的使用让你开发起来得心趁手。


备注说明:本教程同样适用数据比较(打开VS>工具>SQL Server>新建数据比较)


二、关于

从​​Visual Studio 2005​​版本开始,VS就开始支持“比较和同步数据库架构”,微软如此早就实现这个功能说明这是一个我们会经常用到一个功能。这个功能我们自己也可以实现(在SQL Server中实现视图、存储过程及表结构的比较),也可以将其打包成一个工具(自己开发MSSQL架构和数据对比小工具)。对于新手来说稍微麻烦一些,这里就不做多说,感兴趣的可以看看。


 


三、开始演练

本次演练使用VS2017自带的SQL Server工具比较两个数据库的架构并同步目标的架构和源的架构。


 


1.准备两个要比较的数据库的结构

我这里有两个数据库,一个是本地的,一个是测试服务器的。本次演练我将连接这两个数据库。


 


2.连接源数据库和目标数据库

所谓的源数据库和目标数据库也就是字面的意思(源>目标)将源数据中新增修改的同步到目标数据库中。

首先我们打开VS>工具>SQL Server>新建架构比较。

Visual Studio2017 数据库架构比较_服务器

选择源

Visual Studio2017 数据库架构比较_sql_02

我们选择数据库,点击选择连接

Visual Studio2017 数据库架构比较_服务器_03

连接源服务器并验证,别忘记了选择数据库

Visual Studio2017 数据库架构比较_数据_04

选择目标 操作和选择源一样

Visual Studio2017 数据库架构比较_服务器_05

连接目标服务器并验证,别忘记了选择数据库

Visual Studio2017 数据库架构比较_sql_06


 


3.比较源数据库和目标数据库

源数据库和目标数据库都选择完成后,点击左上角“比较”开始比较两个数据库

Visual Studio2017 数据库架构比较_服务器_07

下面就是源数据库和目标数据库的差异

Visual Studio2017 数据库架构比较_sql_08


 


4.更新目标数据库

比较完成后选择左上角的更新,就会更新我们选择要更新的字段数据(图中红标圈住的字段)

Visual Studio2017 数据库架构比较_服务器_09

Visual Studio2017 数据库架构比较_数据_10

数据的同步其实就是差异生成对应的脚本,然后在目标数据库执行。选择查看结果就可以看到部署脚本

Visual Studio2017 数据库架构比较_数据_11

看到提示我们知道更新完毕了。然后我们再执行“比较”看一下差异。

Visual Studio2017 数据库架构比较_服务器_12

这个时候我们会发现刚才同步的已经同步完成了,如果想全部同步,全部勾选就是啦,架构比较就是这么简单,本次演练就到这里。


 


四、常见的问题

1.为什么我的界面和你的不一样

答:我这vs2017带的工具,相比较其他版本可能会存在些差异,但是大体操作是一样的。

2.为什么有些我会更新失败

答:这个问题我也遇到过,这是因为可能因为这个操作会导致目标数据丢失,或者是因为权限不足等原因。这个我是手动操作的,你们要是知道好的解决办法可以留言给我哦。


复制代码

(48,1): SQL72014: .Net SqlClient Data Provider: 消息 50000,级别 16,状态 127,第 6 行 检测到行。由于可能丢失数据,正在终止架构更新。
(43,0): SQL72045: 脚本执行错误。执行的脚本:
IF EXISTS (SELECT TOP 1 1
FROM [dbo].[CR_ClassRingNewsFeed])
RAISERROR (N'检测到行。由于可能丢失数据,正在终止架构更新。', 16, 127)
WITH NOWAIT;

执行批处理时出错。


参考:​​演练:比较两个数据库的架构​


 



搜索

复制