自动检查SQL Server数据库的完整性

时间:2013-10-18 14:23:07

标签: sql sql-server sql-server-2008 sql-server-2008-r2

有没有办法检查SQL Server数据库的完整性?我有这些开发人员(好的,我包括在内)不断更改数据库中的对象(视图/函数/存储过程),有时我们更改对象的签名或删除对象,其他对象变为无效/不可编译。我希望获得某种关于哪些对象被破坏的报告/警报,最好是可以与CruiseControl.NET集成的对象。想法?

3 个答案:

答案 0 :(得分:2)

Olla Hallengreen提供了一种检查数据库完整性的绝佳方法。 请参考 http://ola.hallengren.com/sql-server-integrity-check.html

答案 1 :(得分:2)

我认为您需要的是数据库单元测试,然后可以通过CruiseControl.NET执行。我建议使用tSQLt(http://tsqlt.org)。 RedGate还在该产品的顶部销售了一个漂亮的GUI,但不需要获得您需要的功能。 (http://www.red-gate.com/products/sql-development/sql-test/

答案 2 :(得分:1)

您描述的问题很常见 - 让多个开发人员在数据库上工作是有问题的。

据我所知,没有简单的方法以您提到的方式检查数据库对象的完整性 - 在编译时解析存储过程之间的依赖关系等,如果该依赖关系是proc,则proc将返回错误在运行时无效。您可以重新编译所有过程,函数,视图等以清除批处理期间的错误。

但是,问题不在于您需要检查数据库的完整性,而是首先没有完全避免问题的过程。

有许多解决方案可以最大限度地减少问题;它取决于你的开发设置你走哪条路。该过程通常称为“连续数据库集成”。

杰夫阿特伍德提供了overview年前,update提前不久(查看链接)。另外看Redgate tools - 这些过程非常轻松。