如何通过Visual Studio来管理我们的数据库项目

  某日的一个早晨,产品告诉我说要把之前变更的一个功能更改回原来的设计内容,但是发现我们之前的查询业务逻辑实在Proc中实现的,没有进行备份,不得已又要重新对该业务逻辑进行编码,浪费了不必要的时间与精力。

  通过这件事后思考,针对业务系统,很多复杂的查询逻辑是在PROC 中进行实现,如果哪天需求变更或者上线后发现问题需要回滚,这时候就会非常麻烦,如果能将数据库项目中相关视图,触发器或存储过程与版本管理工具结合起来的话,对于不同版本与不同分支时就能省很大一份力了,这样就解决了很多不必要的麻烦。

  为了解决问题首先是上网查相关资料,发现很多工具,但是不尽人意,兼容性和使用规则上不是那么完美,最后想到了宇宙第一IDE Visual Studio,也许微软早都替我们想好了呢,如此就发现了《SQL SERVER 数据库项目》,在结合了git后真是屡试不爽,下面就着重介绍一下数据库项目在系统中的应用。

 1、打开VS,点击文件-新建项目-SQL SERVER 数据库项目(tips:安装vs时需要添加数据库管理插件

2、创建项目后,在创建的解决方案下右键点击导入-数据库-选择数据库所在连接,导入设置默认就好,如果你们的数据库权限范围较高的话,根据自身情况设置

3、启动成功后,会自动扫描数据库的相关配置加载到VS列表当中,这样对系统的数据库架构就一览无遗了

 

4、打开某个表的结构文件,可以看到我们表结构设计,相关的索引、主键、触发器等,当然都只是结构,并且我们在界面上修改后,同时会生成对应的SQL语句,我们可以直接到数据库中F5执行 以下即可

 

  有的同学会说,我还是习惯在SqlServer中对表进行修改,包含业务逻辑SQL的编写,还有些ef code first 相关的项目都是会直接操作到DB项目的,无妨,接下来我来看数据库项目重要一个功能,架构比较

首先我在Person 内通过Sql Server新增一个字段

alter table person add DepartmentId int null

  增加完毕后,右键我们的数据库项目,点击架构比较,这里需要进行区分,假如你在VS内更改的表结构往数据库更新,就将数据项目放置左边,从数据库往数据库项目更新,反之,否则更新反了后果可是很糟糕的,选择数据源后,点击比较,VS就会自动比较出当前项目与比较项目的差异,这里就可以根据你自己的需要进行一个勾选,然后点击更新后,就会将左边的架构更新至右边了。

更新完毕之后,数据库项目中对应的表结构、存储过程、触发器等文件就会变成对应的物理文件,这些文件我们可以将它放置代码管理工具进行管理了,并且很好的注释此次更改的内容或新增的需求等,例如:

git add person.sql

git commit -ma "人员表增加部门Id"

git push 

通过代码管理工具我们就能将我们的数据项目打成一个一个分支,很方便查到我们每个时期对应的结构文件了。

 

本文只是简单记录数据库项目在实际开发过程中带给我们的便利,让更多人知道这个实用的工具,其中还有很多坑需要各位一点一点去发现,这里就不一细说了,文章有写的不当的地方,请及时指出,如本文对您有所帮助,也请点个推荐,您的肯定也是是我最大的动力。thanks

posted @ 2017-03-01 15:02  hellohello-tom  阅读(4300)  评论(1编辑  收藏  举报