Ich habe eine zentrale Tabelle in meiner Datenbank geändert und sp_depends gibt buchstäblich Hunderte von Ergebnissen zurück. Ich befürchte, dass einige dieser gespeicherten Prozeduren nach meiner Änderung möglicherweise nicht mehr kompiliert werden.
Das Überprüfen einer einzelnen gespeicherten Prozedur ist einfach (ich führe nur das Änderungsskript erneut aus und prüfe, ob der Vorgang erfolgreich ist), aber dies bei mehr als 100 Prozeduren zu tun, ist etwas umständlich.
Ich weiß, dass ich ein Skript wie dieses verwenden kann, um alle Objekte meiner Datenbank neu zu kompilieren, aber der eigentliche Vorgang wird beim nächsten Ausführen der gespeicherten Prozedur nicht sofort ausgeführt, sodass dies in meinem Fall nicht angemessen erscheint.
Ich dachte auch, dass ich alle gespeicherten Prozeduren insgesamt löschen und meine Datenbank mit meinem Quellcodeverwaltungssystem neu synchronisieren könnte, aber diese Option ist zwar praktikabel, aber nicht sehr elegant. Gibt es einen besseren Weg, dies zu tun?
Ich verwende SQLServer 2008 R2 und meine Datenbankskripte werden in einem VS 2008-Datenbankprojekt gespeichert.
Zur Verdeutlichung befürworte ich nicht, dass man sich beim Testen von Code ausschließlich auf diesen Ansatz verlassen sollte. Genau wie in c # erkennen Sie beim Codieren sofort Syntaxfehler in anderen abhängigen Dateien (und verwenden dann andere Teststrategien, z. B. Unit-Tests, die normalerweise mehrere Größenordnungen langsamer sind). Ich halte es für sinnvoll, SQL-Abhängigkeiten zu erkennen Fehler in Sekunden, anstatt einen vollständigen Funktionstest durchführen zu müssen, der in der Regel einige Stunden dauern kann.