如何管理SQL Server的数据库对象
在项目的开发和维护过程中,如何管理SQL Server的数据库对象。
例如怎样记录开发人员修改表结构,存储过程,函数,视图等。
提供几个思路,有些没有实践过哈:
1.VSS等sourcecode管理工具.
目前普遍采用的方式,和代码管理一致,可以控制版本变更,内容变更,可以回滚等等.
所有的数据库变更必须严格按照先更新SourceCode,然后再更新数据库。
缺点:无法记录直接在数据库上做的修改.可以辅助用户登陆、修改等必要的安全权限设置来配合使用避免.
2.SQL 2005以后的DDL触发器.
在数据库建立一个表,使用DDL触发器来记录用户数据库的操作的更改.
所有用户的更改都会记录到数据库中.
缺点:对于频繁更新的情况下,DDL触发器可能会影响数据库的性能.可以选择数据库空闲时段并通过批量更改来降低DDL触发器对数据库的性能影响.