BI项目中会有很多不同种类的项目,其中比较比较大的一部分就是对DB脚本的处理。然而DB的脚本毕竟无法在项目中进行维护,所以这里介绍如何对DB的脚本进行版本上的维护。

数据库脚本本身没有项目模板支持,很难进行版本管理维护,通常只能通过文件脚本的方式,比如通过Task将DB的定义导出到文件。

这种方法可以将DB里的相关对象,表,视图,存储过程以及函数等导出到文件。缺点是每次导出的时候很难知道每次导出跟上一次的版本变化在哪里。

这里介绍另外一种方法,就是通过Visual Studio里的工具,这里主要演示Visual Studio 2013版本。

新建一个SQL Server数据库项目。

新建项目后,选择工具,SQL Server下的"新建架构比较…"。

系统会打开架构比较工具,这个工具主要是比较两个数据源的架构是否有任何差异。

首先点击左侧选择数据源。

点击选择源…

选择数据库,然后新建数据库连接。

连接到目标数据库。这里使用微软官方的示例数据库做演示。

然后选择目标。

目标端选择项目,然后下拉框选择刚刚建立的项目。

设置好对比对象后,点击比较按钮。

系统会比较出两端的差异。由于项目是空的,所以对于数据源来说每个对象都是新的。

点击更新,可以将左侧的代码同步到项目中。

在解决方案管理器里,可以看到被同步过来的数据库对象文件。这样我们就将数据库的脚本文件同步到了项目文件中。

接下来再演示下如何通过这个工具获取到数据库里的变化。首先,在数据库里的函数定义里,加几段测试文本作为测试,看工具是如何识别出脚本的差异的。

回到刚才建立的项目,再次点击比较,可以看到系统识别出了这个变化。代码具体哪里发生了变化在下面的对比界面都可以清晰的看到。

点击同步,将这个变化同步到项目里。

打开Source Explorer,可以看到对应的文件变成了签出的状态。

签入代码,顺便加上Comment,这样后续就可以追溯到这个change的相关内容了。

本文介绍了数据库代码版本控制的一个方法。数据库代码的版本控制,在任何项目尤其是BI项目都是相当重要的,尽管没有现成的项目模板支持,通过Visual Studio的架构对比工具,可以辅助帮助数据库代码的版本管理。

[BI项目记]-DB脚本同步的更多相关文章

  1. BI项目记笔记索引

    这个笔记系列主要记录了在BI项目中,如何搭建环境进行源代码管理以及文档管理. 用到的产品包括: TFS Express Sharepoint Visual Studio SQL Server   配置 ...

  2. [BI项目记]-对项目文件进行规划

    BI项目中会有很多不同种类的项目,此篇会对这些项目进行一个总结,并且在TFS中进行分类. 根据笔者对BI项目的经验和理解,主要将BI项目中的项目类型进行如下分类: DB脚本 DB脚本是BI项目中重要的 ...

  3. [BI项目记]-搭建代码管理环境之服务端

    上一篇介绍如何搭建环境进行文档版本的管理,这篇主要介绍搭建环境进行代码版本的管理. 即使是BI项目也要进行代码版本管理.代码版本管理的工具有很多,VSS, SVN等都是当下大家经常提起的,这里主要介绍 ...

  4. [BI项目记]-搭建代码管理环境之创建团队项目

    此篇主要介绍如何基于TFS环境创建团队项目来进行项目代码的版本管理工作,这一系列将侧重于BI项目,当然对于其它项目也同样适用. 在TFS里开始一个项目,我们首先需要创建一个团队项目. 在Team Ex ...

  5. [BI项目记]-搭建代码管理环境之签入代码

    此篇主要介绍如何基于TFS环境创建进行BI项目最简单的代码签入和签出工作. 首先介绍BI项目中的SSAS项目.SSAS项目主要包含Cube多维数据集和数据挖掘模型,是在微软BI产品体系中重要的一个组件 ...

  6. [BI项目记]-TFS Express备份和恢复

    在项目中对TFS进行备份操作是日常重要的工作之一,此篇主要描述如何对TFS Express进行备份,并且在另外一台服务器上进行恢复. 以下是操作的几个关键点: 备份数据库,在TFS管理工具中就可以完成 ...

  7. [BI项目记]-BUG处理

    BUG是在项目过程中以及运维过程中经常遇到的工作项.在处理每一个BUG的过程中,通过项目管理系统把BUG相应的内容纪录下来也是很重要的.这里将介绍如何通过TFS来完成BUG的处理工作. 首先看一下BU ...

  8. [BI项目记]-新任务处理

    上一篇主要介绍如何借助TFS创建一个新的工作项,此篇主要演示如何对其进行处理. 首先回顾下新工作项不同阶段的定义. 接下来进入到开发阶段,根据需求创建五个报表.打开SQL Server Data To ...

  9. [BI项目记]-新任务创建

    上一篇介绍了如何处理一个Bug工作,此篇主要介绍如何借助TFS对于一个新需求创建一个新的工作项. 这里假定,有一个新的需求,需要创建五个报表. 然后开发的工作流程如下: 这个流程总结起来大致如下: 首 ...

随机推荐

  1. Azure SQL Data Warehouse

    Azure SQL Data Warehouse & AWS Redshift Amazon Redshift Amazon Redshift 是一种快速.完全托管的 PB 级数据仓库,可方便 ...

  2. 跳转到某个Activity

    跳转 Activity之间的跳转 可以依靠Intent 简单粗暴的办法是 Intent intent= new Intent(*.this, MainActivity.class); startAct ...

  3. MFC的多线程操作

    记得用MFC做了一个图像自动修复软件,当时没有多线程操作这一概念,由于图像修复算法比较复杂,因此,当执行图像修复时,程序就像卡死了似得而不能做其他操作.其实MFC对这种情况有一种很好地解决方案,那就是 ...

  4. 81.Android之沉浸式状态栏攻略

    转载:http://blog.csdn.net/lmj623565791/article/details/48649563/ 一.概述 近期注意到QQ新版使用了沉浸式状态栏,ok,先声明一下:本篇博客 ...

  5. 【BZOJ-3643】Phi的反函数 数论 + 搜索

    3643: Phi的反函数 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 141  Solved: 96[Submit][Status][Discuss ...

  6. RabbitMQ headers Exchange

    Headers Exchange headers也是一种交换机类型,但是在rabbitmq官网中的教程中并没有说到.资料也很少,但是找一找总会有的. headers与direct的模式不同,不是使用r ...

  7. '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp error

    '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp error 异常现象 ### Cause: java.sql.SQ ...

  8. 【整理】Word OpenXML常用标签

    一.背景 最近在做关于Word内容自动标引,需要了解Word的底层结构,顺便梳理一下OpenXML的标签含义,方便后续开发,提高对OpenXML标签的查找效率,也是一个熟悉的过程. 二.内容 < ...

  9. <<< 如何查看自己是外网还是内网

    判断的方法很简单,就是看你的网络中有没有路由器,不管是有线路由还是无线路由,只要你的网络中用了路由,那你就是内网,用路由器的网络有一个特点,那就是只要路由器在开着,那你开了电脑之后就可以直接上网,不需 ...

  10. Instant Radiosity实现

    本来说等把课程作业做完再来弄这个,但是还是没有忍住,先做了,主要原因还是这个算法很容易实现.这个算法在1997年由Keller首次提出.虽然名字叫Instant Radiosity,但是它和Radio ...