惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
腾讯CDC
D
Docker
G
Google Developers Blog
D
DataBreaches.Net
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
The Cloudflare Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
量子位
美团技术团队
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - Kevin Li

使用WMI远程部署/更新BizTalk程序集 基于WS-AtomicTransaction标准的WCF远程分布式事务(补充) 基于WS-AtomicTransaction标准的WCF远程分布式事务(二) 基于WS-AtomicTransaction标准的WCF远程分布式事务(一) 在Jeffrey Zhao的基础上+反编译System.Web.Extensions.Design得到的完整Ajax代码 .net remoting的事务传播以及wcf分布式事务 在多线程环境下使用HttpWebRequest或者调用Web Service 一篇介绍.NET 2.0 范型挺全面的文章 C# 2.0中的范型和Nullable范型 Windows 2003 下分布式事务协调器(DTC)的配置 MySql 主键(自动增加)的数据类型所带来的错误 使用TraceListener 自动保存跟踪信息到文件中 接口属性集成与智能提示的奇怪问题 动态创建程序集中的类 动态创建程序集中的类 使用NUnit测试包含应用程序配置的dll文件 解决“COM+ 无法与 Microsoft 分布式事务协调程序交谈”的问题 [导入]一些很有用的Reflector 插件 Web安全性原则
使用SQLSourceSafe控制数据库的版本
Kevin Li · 2005-04-20 · via 博客园 - Kevin Li

当多人同时开发一个数据库管理和应用系统时,采用合理的方法监控数据库中表、存储过程和视图等对象的变动是非常重要的。试想,如果我们的系统已经在线上开始运行或者说已经发布一段时间了,这时,如果我们为这个系统添加新功能,并涉及数据库改动时,往往只是已运行的数据库进行局部变更,而不会全替换。如果我们不能将所有的数据库改动反映到新系统里面,而发布了新的系统,可能就会导致应用程序发生异常甚至出现漏洞。

现在实际上已经有很多的工具可以监控数据库的变更和维护数据库的版本,比如说:SQLSourceSafe、SQL ScriptSafe、Query Commander,它们都是挺有效的。不过我熟悉的是SQLSourceSafe,就简单介绍一下吧,希望对大家有用

 SQLSourceSafe 是一个基于Visual SourceSafe的工具,它可以记录数据库的所有改动,可以对比SQLSourceSafe中存储的版本与数据库中的不同(可视化的比较)、可以撤销数据库对象的更改等等。具体的功能很多,大家可以看它的帮助。我就简单介绍一下基本功能

1、建立新的数据库连接,保存现有版本。
(1)新建一个VSS数据库(使用Visual Source Safe Administrator)

(2)在SQLSourceSafe文件菜单中选择“New Connnection”,就会弹出下面的对话框: 
 
(3)填入相关的信息,然后选择Next ,接着出现选择数据库
 
(4)选择完后单击next,就会在主窗口显示所有的数据库对象,并且在VSS里面创建了一个项目,其中左边是存储在vss中的项目,右边是数据库中的真实数据对象,至此,所有的数据库对象的当前版本都存储在VSS中。
 

2、Check-out数据库对象并且修改

(1)要修改数据库对象,并保存修改历史,应先在SQLSourceSafe将对象check-out,比如要修改Tables里的Customers表,可以在左边选中该表,右键选择check-out,此时就会出现如下图的情况(红外标记),这时你就可以在SQLServer企业管理器或者在SQLSourceSafe里面修改该表。如果要修改其他的对象,操作是一样的。

3、将修改保存到VSS里面的版本历史中
修改完了以后,只需选中该对象,右键选择“Check-in”,该对象的所有更改将保存到版本历史中。
4、查看历史版本和对比改动
(1)查看特定对象的历史和对比改动
选择要查看的对象,右键选择Show History...,将显示一个类似VSS里面历史版本浏览的对话框:

选择两个版本,单击Diff,就可以对比改动:

5 、对比现在的VSS版本和数据库实际版本的区别
当你使用外部工具,如企业管理器修改了数据库,想看看修改后的数据库与存储的版本有什么区别时,可以使用SQLSourceSafe的功能,方法是选择特定的对象或者整个数据库,然后右键选择“show differences”,SQLSourceSafe就会对比所有的选定对象的VSS版本和SQL Server真实版本的区别,如图:

双击黄色显示的对象,就可以看到详细的区别。

6、原则上,SQLSourceSafe要求,当你要改动数据库时(无论是用SQLSourceSafe或外部工具),都要在SQLSourceSafe里先Check-out待修改的对象,但是如果我们预先没有check-out怎么办呢?
如果碰到这种情况,你可以选择已经被外部修改了的对象,然后选择check-out,这时会显示一个对话框,提醒你该对象已经被外部修改了,是否先将数据库中的对象恢复到与VSS保存的一样?

此时,我们一般不会选择yes的,因为我们不想丢弃在外部的修改,当选择no时,当前的修改就会保持与SQLServer一致,此时我们再Check-in,外部的修改就会保存到VSS里面了。

好了,就将这么多吧,更多的功能,留给大家慢慢去了解吧,我也是刚开始用。