Ich muss einige gespeicherte T-SQL-Prozeduren, die wichtige Geschäftslogik enthalten, verstehen und klarstellen. Kennt jemand irgendwelche Werkzeuge, Tipps, Tricks oder Hinweise, die für Komponententests verwendet werden können, so kann ich diese SQL umgestalten, ohne sie zu brechen?Was ist der beste Weg, Datenbankprozeduren zu refaktorieren?
Antwort
Ich verwende C# für Unit-Tests von gespeicherten Prozeduren - das ist viel effizienter als T-SQL. Der erste Link erklärt, wie Sie Unit-Tests schnell generieren können.
Simon Harriyott schlägt vor, TSqlUnit dafür zu verwenden. Es gibt mehr Informationen über seinen Prozess on his blog.
Warum müssen Sie refactor?
Fügen Sie eine Reihe von PRINT-Anweisungen hinzu und führen Sie sie manuell aus dem Management Studio aus. Wenn Sie die richtigen Informationen drucken, sollten Sie in der Lage sein, den Code zu verfolgen und zu verstehen, was vor sich geht.
Wenn Sie nicht wissen, welche Parameter zu verwenden sind, ändern Sie sie, um die Eingabeparameter an eine Protokolldatei zu senden, und verwenden Sie diese dann, um sie manuell auszuführen.
Wenn Sie Zugriff auf Visual Studio Team System Database Edition haben, dann wird es mit einer Reihe von Unit-Test-Tools speziell für Datenbanken, wie in diesem MSDN article erläutert.
Hilfe zu mir Refactoring (im Gegensatz zu bekommen es im Test gegenüber, so Sie refector können), nicht vergessen Refactoring Databases zu überprüfen (entweder das Buch oder die Website).
Ich habe Tests für gespeicherte Prozeduren mit dem aufrufenden Code geschrieben (in meinem Fall Java mit dbunit), aber ich weiß nicht, wie es mit anderen Methoden verglichen werden würde.
- 1. Was ist der beste Weg, redundante/reverse_each Code in Ruby zu refaktorieren?
- 2. Was ist der beste Weg zu
- 3. Was ist der beste Weg
- 4. was der beste Weg
- 5. Was ist der beste Weg, um einen Datenrahmen zu umgehen?
- 6. Was ist der beste Weg Protokoll DELETEs zu überwachen?
- 7. Was ist der beste Weg, HTML in Excel zu konvertieren
- 8. Was ist der beste Weg, Ränge in MYSQL zu generieren?
- 9. Was ist der beste Weg, um mit OSGI zu beginnen?
- 10. Was ist der beste Weg, weiße Farbe zu erkennen?
- 11. Was ist der beste Weg, um mehrere Aktionen zu behandeln?
- 12. Was ist der beste Weg, um vorberechnete Daten zu implementieren?
- 13. Was ist der beste Weg, um ein Verzeichnis zu leeren?
- 14. bash - Was ist der beste Weg, um Ergebnisse zu zählen?
- 15. Was ist der beste Weg, eine Prozedur "verzögert" zu nennen?
- 16. Was ist der beste Weg, Jenkins-Projekte zu aktualisieren?
- 17. Was ist der beste Weg, Google Cloud Storage zu implementieren?
- 18. Was ist der beste Weg, um ähnliche Strings zu bearbeiten?
- 19. Was ist der beste Weg, um eine Tabelle zu deduplizieren?
- 20. Was ist der beste/sicherste Weg Homebrew neu zu installieren?
- 21. Was ist der beste Weg, WCF zu lernen?
- 22. Was ist der beste Weg, RichText (WYSIWYG-Ausgabe) zu speichern?
- 23. Was ist der beste Weg, Perl-Code zu dokumentieren?
- 24. Was ist der beste Weg, um eine Eigenschaft zu deklarieren?
- 25. Was ist der beste Weg, Daten in Mongo zu validieren?
- 26. MVCContrib - Was ist der beste Weg, XMLResult zu testen?
- 27. Was ist der beste Weg, um in C++ zu casten?
- 28. Was ist der beste Weg, "Controller" -Klassen zu laden/auszuwählen
- 29. Was ist der beste Weg, Code immer wieder zu referenzieren?
- 30. Was ist der "beste" Weg, Skripte zu speichern?
Warum nicht den Debugger verwenden? –
@John MacIntyre, welcher Debugger? –
@ KM - Wenn Sie SQL2005 oder höher verwenden, wird VS installiert, von dem Sie debuggen können. Wenn Sie SQL2000 verwenden, ist in Query Analyzer ein Debugger integriert. –