Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Syntaxprüfung aller gespeicherten Prozeduren?

Sie können dies auch "an Ort und Stelle" tun - ohne alle Erstellungsanweisungen zu erhalten.

Zusätzlich zur Einstellung von NOEXEC ON , müssen Sie auch Ihren bevorzugten SHOWPLAN_* ON einstellen (Ich verwende SHOWPLAN_TEXT ). Jetzt können Sie Ihren Schritt 2 loswerden und einfach jede Prozedur ausführen, die Sie in Schritt 1 abgerufen haben.

Hier ist ein Beispiel, das eine einzelne gespeicherte Prozedur verwendet. Sie können es in Ihre Lieblingsschleife einarbeiten:

create procedure tests @bob int as 
select * from missing_table_or_view
go 

set showplan_text on; 
go 

set noexec on 

exec tests 

set noexec off
go 
set showplan_text off; 
go 
drop procedure tests 
go

Das obige Beispiel sollte die folgende Ausgabe generieren: