2009-11-24 17 views
35

¿Hay alguna forma de depurar un procedimiento almacenado en SQL Server 2008?Procedimiento almacenado de depuración en SQL Server 2008

que tienen acceso a utilizar SQL Server Management Studio 2008 y Visual Studio 2008 (no estoy seguro si cualquiera proporciona esta funcionalidad).

Yo generalmente uso del Analizador de SQL para encontrar los parámetros pasados ​​al procedimiento almacenado, sin embargo, le gustaría ser capaz de paso a través del procedimiento para ver dónde está fallando.

¿Esto es posible?

¿Cuál es la mejor manera? (en términos de encontrar rápidamente la ubicación de errores)

Respuesta

33

Bueno, la respuesta estaba sentado justo en frente de mí todo el tiempo.

En SQL Server Management Studio 2008 hay un botón de depuración en la barra de herramientas. Establezca un punto de interrupción en una ventana de consulta para avanzar.

descarté esta funcionalidad al principio porque no había pensado en entrar en el procedimiento almacenado, lo que se puede hacer con facilidad.

SSMS básicamente hace lo FinnNK menciona con el tutorial de MSDN, pero de forma automática.

tan fácil! Gracias por su ayuda FinnNK.

Editar: Debo añadir un paso para encontrar la llamada al procedimiento almacenado con los parámetros Utilicé el Analizador de SQL en mi base de datos.

+0

Una gran cosa, en las raras ocasiones en que depuro las rutinas de la base de datos, generalmente se encuentra en el contexto de una aplicación; no me di cuenta de que podía hacerlo directamente en SSMS. – FinnNk

+0

Hay otra herramienta útil para la depuración integrada en SQL Server 2008 en alguna parte: puede comenzar a grabar qué procedimientos almacenados se están invocando mientras está grabando. Olvidé lo que se llama; podría ser bastante útil ahora mismo. –

+2

Salvavidas, hombre !!! ;) –

16

Sí, puede (siempre que tenga al menos la versión profesional de Visual Studio), aunque requiere una pequeña configuración una vez que lo haya hecho, no es muy diferente de la depuración código. MSDN has a basic walkthrough.

+2

Gracias FinnNk, sin embargo, esto tarda mucho en ponerse en marcha, además de que tiene que tener un proyecto sólo para permitir la depuración. No es mi taza de té. – Russell

4
  • Sí, aunque puede ser difícil de conseguir la depuración de trabajo, sobre todo si tratando de depurar SQL en un servidor SQL remoto desde su propio equipo de desarrollo.
  • En la primera instancia, recomendaría que esto funcione depurando directamente en el servidor primero, si es posible.
  • Conectarse al servidor SQL con una cuenta que tiene derechos de administrador de sistemas, o pregunte a su DBA para hacer esto.
  • Entonces, para su propia cuenta de Windows, crear un 'login' en SQL Server, si no está ya allí:

enter image description here

  • Haga clic en la cuenta> propiedades - garantizar que el inicio de sesión es un miembro de la función 'sysadmin':

enter image description here

  • (también asegúrese de que la cuenta sea 'propietaria' de las bases de datos donde quiera depurar las secuencias de comandos (p.procedimientos almacenados) para:

enter image description here

  • A continuación, conectarse directamente al servidor SQL mediante su cuenta de Windows.
  • Inicie sesión en el servidor SQL utilizando la Autenticación de Windows (usando la cuenta que acaba de utilizar para iniciar sesión en el servidor)
  • Ahora 'Depure' la consulta en SQL Management Studio, estableciendo puntos de interrupción según sea necesario. Puede entrar en procedimientos almacenados usando F11:

enter image description here

  • He aquí una guía útil para la depuración:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-1.aspx

  • Si necesita depurar de forma remota, a continuación, Una vez que tenga esta parte funcionando, puede intentar configurar la depuración remota:

http://blogs.msdn.com/b/billramo/archive/2009/04/11/transact-sql-debugger-for-sql-server-2008-part-2.aspx

Cuestiones relacionadas