2012-01-22 8 views
15

Estoy trabajando en una instancia de SQL Server 2008 R2. Acabo de cambiar el código de un procedimiento almacenado. Cuando trato de depurar ese proceso, la ventana de depuración de SSMS muestra la versión anterior del código.La depuración no muestra el procedimiento almacenado actual versión

¿Qué puedo hacer para obligar a SSMS a presentar la versión actual del código?

Gracias de antemano.

+0

Quizás quiso modificarla utilizando una 'ALTER PROCEDURE' script? Si es así, intenta hacer 'DROP PROCEDURE' +' CREATE PROCEDURE'. Tuve este problema una vez: 'ALTER' no se actualizó puede procedimiento a la nueva versión del código – GolfWolf

+0

Tal vez el archivo debe ser guardado primero? – JeffO

+0

@JeffO: ¿archivo? No hay archivo: estoy cambiando el procedimiento directamente en el servidor. – rsenna

Respuesta

9

Este problema ha existido durante años en SQL Server. Por lo general, toma un par de veces iniciar y detener el depurador antes de que se sincronice con la versión correcta de la fuente.

También notará que algunas ventanas están abiertas mostrando la última fuente que conoce el depurador. Ellos necesitan estar cerrados. Aunque es una pita, la manera más rápida de resolver el problema es detener el estudio de administración y reiniciarlo.

+3

Use DBCC FREEPROCCACHE para borrar el caché de procedimiento. -> Gracias a Dave Pinal (que sabe todo lo que SQL Server !!) http://blog.sqlauthority.com/2007/03/23/sql-server-stored-procedure-clean-cache-and-clean- buffer/ –

+3

Ejecute las siguientes dos declaraciones DBCC FREEPROCCACHE DBCC DROPCLEANBUFFERS desde http://blog.sqlauthority.com/2007/03/23/sql-server-stored-procedure-clean-cache-and-clean-buffer/ –

3

A veces ALTER PROCEDURE no actualiza el procedimiento como se supone que debe hacerlo.

No estoy seguro de cómo reproducir esto o cuáles son las causas, pero me ha pasado algunas (muy pocas) veces.

Intente hacer DROP PROCEDURE + CREATE PROCEDURE para asegurarse de que la nueva versión del procedimiento se guarda correctamente.

+1

Hola w0lf. No creo que su explicación sea exactamente cierta: de hecho, el procedimiento se actualiza correctamente, es solo el SQL Server Management Studio (y la instalación de depuración subyacente) que, por alguna razón, no se da cuenta de eso. Pero simplemente funciona como se espera si hago un 'DROP' +' CREATE' en lugar de un 'ALTER'. – rsenna

+0

@rsenna Tienes razón. Tuve este extraño problema hace un tiempo y no recuerdo todos los detalles. – GolfWolf

6

Acabo de reiniciar el SSMS, eso resuelve el problema para mí.

Por cierto, estoy experimentando el mismo problema con SQL Server Management Studio 2012

6

Uso

DBCC FREEPROCCACHE

DBCC DROPCLEANBUFFERS

Gracias debido a Dave Pinal (que conoce todas las cosas de SQL Server !!) Dave Pinal Knows All!

Cuestiones relacionadas