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

推荐订阅源

F
Fortinet All Blogs
V2EX - 技术
V2EX - 技术
The Last Watchdog
The Last Watchdog
宝玉的分享
宝玉的分享
T
Tenable Blog
WordPress大学
WordPress大学
K
Kaspersky official blog
Microsoft Security Blog
Microsoft Security Blog
大猫的无限游戏
大猫的无限游戏
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Hacker News - Newest:
Hacker News - Newest: "LLM"
P
Palo Alto Networks Blog
Help Net Security
Help Net Security
V
Vulnerabilities – Threatpost
Know Your Adversary
Know Your Adversary
C
CXSECURITY Database RSS Feed - CXSecurity.com
A
Arctic Wolf
Forbes - Security
Forbes - Security
Microsoft Azure Blog
Microsoft Azure Blog
爱范儿
爱范儿
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog
H
Hacker News: Front Page
W
WeLiveSecurity
博客园 - 【当耐特】
G
Google Developers Blog
Martin Fowler
Martin Fowler
TaoSecurity Blog
TaoSecurity Blog
Hacker News: Ask HN
Hacker News: Ask HN
人人都是产品经理
人人都是产品经理
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
AI
AI
N
Netflix TechBlog - Medium
C
Cisco Blogs
I
Intezer
aimingoo的专栏
aimingoo的专栏
博客园 - 聂微东
G
GRAHAM CLULEY
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
MyScale Blog
MyScale Blog
L
Lohrmann on Cybersecurity
Engineering at Meta
Engineering at Meta

博客园 - 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里面了。

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