Automatische Überprüfung der Integrität der SQL server database

Gibt es eine Möglichkeit, die Integrität einer SQL server-database zu überprüfen? Ich habe diese Entwickler (OK, ich eingeschlossen), die ständig objecte in unserer database ändern (viewen / functionen / gespeicherte Procs) und manchmal ändern wir Signaturen von objecten oder fallen objecte und andere objecte werden ungültig / unkompilierbar. Ich würde gerne irgendeine Art von Bericht / Warnung auf, welche objecte gebrochen werden vorzugsweise eine, die mit CruiseControl.NET integriert werden könnte. Ideen?

Ich denke, was Sie brauchen, ist databaseeinheit Tests, die dann durch CruiseControl.NET ausgeführt werden können. Ich empfehle die Verwendung von tSQLt ( http://tsqlt.org ). RedGate verkauft auch eine nette GUI über die Oberseite dieses Produktes, aber ist nicht erforderlich, um die functionalität zu erhalten, die Sie benötigen. ( http://www.red-gate.com/products/sql-development/sql-test/

Olla Hallengran bietet eine hervorragende Möglichkeit, die Integrität der databaseen zu überprüfen. Bitte verweisen Sie http://ola.hallengren.com/sql-server-integrity-check.html

Das Problem, das Sie beschreiben, ist üblich – mit mehreren Entwicklern, die an einer database arbeiten, ist problematisch.

Soweit ich weiß, gibt es keinen einfachen path, um die Integrität der database-objecte in der Art, wie Sie erwähnen zu überprüfen – Abhängigkeiten zwischen gespeicherten Prozeduren etc. sind zum timepunkt der Kompilierung getriggers, und der Proc wird einen Fehler zurückgeben, wenn diese Abhängigkeit nicht gültig ist Laufzeit. Sie können alle Prozeduren, functionen, viewen etc. neu kompilieren, um Fehler während einer Charge auszulöschen.

Allerdings ist das Problem nicht, dass Sie die Integrität Ihrer database zu überprüfen, sondern vielmehr, dass Sie nicht über einen process zur Vermeidung von Problemen mit dieser Integrität in den ersten Platz.

Es gibt eine Reihe von Lösungen, die das Problem minimieren; es ist irgendwie abhängig von deiner Entwicklungseinrichtung, wie du gehst. Der process wird allgemein als "kontinuierliche databaseintegration" bezeichnet.

Jeff Atwood hat schon vor langer time einen Überblick gegeben und ein Update etwas vor langer time (siehe Links). Schauen Sie sich auch die Redgate-Tools an – das macht den process ziemlich schmerzlos.