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. 第一篇puppet

    1,什么是puppet puppet是一种Linux.Unix.windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统服务等.puppe ...

  2. 【USACO 2.3】Cow Pedigrees(DP)

    问n个结点深度为k且只有度为2或0的二叉树有多少种. dp[i][j]=dp[lk][ln]*dp[rk][j-1-ln],max(lk,rk)=i-1. http://train.usaco.org ...

  3. axure快速原型设计工具

    Axure RP是美国Axure Software Solution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格.设计功能和界面的专家能够快速创建应用软件或Web网站的线框图.流程 ...

  4. FastJson的简单实用

    一.FastJson的理解 在工作中,经常客服端需要和服务端进行通信,目前很多项目都采用JSON的方式进行数据传输,简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON ...

  5. Java 枚举类的基本使用

    枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示. 1.常量的使用       在JDK1.5之前,我们定义常量都是:p ...

  6. Derivative of the softmax loss function

    Back-propagation in a nerual network with a Softmax classifier, which uses the Softmax function: \[\ ...

  7. 非对称加密算法——RSA

    RSA     这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和L ...

  8. Node.js入门笔记(1):基本概念

    Node.js和JavaScript: 核心都是ECMAScrit,比如数据类型,语法结构,内置对象等等. 但是在js中顶层是window 在node中的不存在这个window(console.log ...

  9. PHP常量、变量作用域详解(一)

    PHP 中的每个变量都有一个针对它的作用域,它是指可以在其中访问变量(从而访问它的值)的一个领域.对于初学者来说,变量的作用域是它们所驻留的页面.因此, 如果你定义了 $var,页面余下部分就可以访问 ...

  10. Go - 项目收藏

    谷歌官方维护了一个基于go语言的开源项目列表: https://github.com/golang/go/wiki/Projects Web框架 web.go.beego Go项目 httpmq:A ...