sql >> Base de Datos >  >> RDS >> Sqlserver

¿Comprobar la sintaxis de todos los procedimientos almacenados?

También puede hacer esto "in situ", sin obtener todas las declaraciones de creación.

Además de configurar NOEXEC ON , también deberá configurar su SHOWPLAN_* ON (Uso SHOWPLAN_TEXT ). Ahora puede deshacerse del paso 2 y simplemente ejecutar cada procedimiento que recuperó en el paso 1.

Aquí hay una muestra usando un procedimiento almacenado individual. Puedes incorporarlo a tu loop favorito:

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

El ejemplo anterior debería generar el siguiente resultado: