2010-01-06 38 views
33

¿Hay alguna forma de acceder al código de procedimiento almacenado en SQL Server Management Studio? Sé que esto es posible con Visual Studio, pero estoy buscando una solución de depuración confiable desde Management StudioDepuración de procedimientos almacenados en Management studio

+2

No me consta que en SSMS 2005 - se le deja usar instrucciones PRINT y control de flujo/lógica condicional –

Respuesta

22

Solo con SQL 2008 y SSMS 2008. Seleccione del menú 'Depurar \ Iniciar depuración' o presione Alt + F5 y lo lanzar el depurador de T-SQL paso a paso.

En 2005, la única forma es adjuntar Profiler y monitor para el evento SP:StmtCompleted, que no es exactamente un depurador paso a paso, pero al menos verá el flujo de ejecución. No se debe hacer en una máquina de producción, obviamente.

+1

Aparece el error "No se pudo iniciar el depurador" El permiso EXECUTE fue denegado en el objeto 'sp_enable_sql_debug' .. en SSMS 2008 – Nick

+2

>> Para depurar en SQL Server 2005, tanto la cuenta que ejecuta Visual Studio como la cuenta utilizada para conectarse a SQL Server deben ser miembros de la función sysadmin. http://msdn.microsoft.com/en-us/library/ms241735(VS.80).aspx –

+7

¿Y nunca se les ocurrió que las personas que no son administradores de sistema podrían necesitar depurar sps? – HLGEM

4

La capacidad para depurar procedimientos almacenados, que estaba en el Analizador de consultas de SQL Server 2000 no se puso en SQL Server 2005. Microsoft se dio cuenta de este error y poner la funcionalidad de vuelta en en SQL Server 2008.

En SSMS que 2008 puede iniciar el depurador haciendo clic en el botón de depuración en la barra de herramientas o presionando ALT + F5.

Desafortunadamente, ejecutar SSMS 2008 contra una base de datos de 2005 no le permitirá depurar, por lo que tendrá que seguir con Visual Studio.

3

Tenga cuidado con la depuración de procedimientos almacenados utilizando Visual Studio. La forma en que esto se implementa es utilizar una increíble cantidad de bloqueo para que nunca se debe hacer esto en un sistema de producción.

2

Sí, en SSMS 2008 definitivamente puede ingresar al código T-SQL (bloque de código, func almacenado, proc almacenado) y depurarlo.

Vea este excelente artículo Management Studio Improvements in SQL Server 2008 para más detalles - también se ocupa de la depuración (al final del artículo).

+1

Aparece el error "Error al iniciar el depurador" El permiso EXECUTE fue denegado en el objeto 'sp_enable_sql_debug' .. – Nick

+0

Nick debe ser miembro de la función sysadmin. – tbone

19

he escrito un post bastante detallada blog sobre ello aquí:

http://www.diaryofaninja.com/blog/2010/11/23/debugging-sql-queries-function-amp-stored-procedures-with-sql-management-studio

Básicamente, el quid de la cuestión es que introduce su consulta SQL para ejecutar el procedimiento almacenado, y en lugar de pulsar F5 o al presionar el signo de exclamación, presiona el botón de reproducción y usa F10 y F11 para recorrer e ingresar a tus procesos almacenados.

Esto es muy útil, pero parece que nadie lo usa.

1

Tenga en cuenta al depurar instancias remotas con SSMS que su servidor y firewall de cliente necesitarán permitir sqlservr.exe y ssms.exe respectivamente, junto con el puerto tcp 135. El firewall del cliente en mi caso particular estaba causando un "tiempo de espera" caducado "al intentar depurar.

+0

Los artículos de MS para crear reglas de firewall para permitir la depuración remota no mencionan abrir explícitamente el puerto 135. ¿Es esto realmente un requisito? Si es así, ¿solo en el cliente o en ambos, cliente/servidor? – PTansey

+0

@PTansey [Este artículo] (https://msdn.microsoft.com/en-us/library/cc646023.aspx) indica que debe abrir TCP 135 si intenta depurar desde Visual Studio (devenv.exe) o Management Studio (ssms.exe). Esto debe hacerse en el cliente. –

Cuestiones relacionadas