实现Procedure, View, Table等数据库对象的备份与版本控制一直是个问题. 以为是通过手工Export Schema来凑合的. 不过, 最近的项目中, 经常遇到几个人同时修改一个Package的情形, 不是我覆盖了别人的代码, 就是别人把我的给覆盖了. 最严重的一次, 浪费了我整整一晚上的工作. 这个问题已经不得不解决了. SqlNavigator有个Team Coding的功能. 大概看了一些文档(文档组织得不太好, 太分散了), 初步使用了一下, 发现相当好用. 不但实现了访问控制, 还能自动把SQL 脚本保存到VSS里. 1. 以SQL Navigator 4.2/4.4 为例, 首先在需要控制的instance上安装Server Side Objects. (Tool -> Server Side Installation Wizard). 安装中会创建一个sqlnav的用户, 这个用户是Team Coding的admin. 2. 打开SQL Navigator, 用sqlnav进入. View -> Preference -> Team Coding. 在Connection的Configuration标签里面, 勾"User Code Control Group", "User 3rd party Version Control" 选择VSS, 去掉"Apply Team Coding to all Objects" (这样只控制后面在Code Control Group里面定义的那些DB Objects. 3. 定义Code Control Group (CCG): 在Team Coding菜单下 "Code Control Group"里面, 创建一个Group, 选择一个VSS的项目(脚本将存放在这个项目里面), 最后选择哪些Schema是受控的. OK. 用一个普通帐号登入, 会弹出VSS的登陆框. 然后就可以Check in ,Check out了.(第一次Check Out的时候,会自动把脚本导入VSS)