unable transact tipo the temporales tablas tabla studio start not management las engine eliminar donde dinamica debugger debug crear could consultar almacenan debugging sql-server-2012 ssms table-variable

debugging - tipo - unable to start the transact-sql debugger could not connect to the database engine instance



¿Cómo ver los datos en variables de tabla durante la sesión de depuración en MS SQL Management Studio 2012? (3)

Me gustaría depurar un script complejo de T-SQL usando SSMS 2012.

Puedo ejecutar el script en modo de depuración y colocar puntos de interrupción, así como pasar por mi script, pero no puedo ver los valores almacenados en las variables de mi tabla.

En la ventana Locals veo todas estas variables, pero su valor se muestra como (table) :

No hay forma de ver el contenido de la variable a través del menú contextual o haciendo clic en la variable.

Traté de usar la Immediate Window para ejecutar una consulta en la variable de la tabla, pero parece que tampoco funciona.

¿Alguna idea de cómo puedo obtener los valores de las variables de mi tabla en la sesión de depuración?


Aunque no puedo encontrar ninguna documentación, en ningún lado, que explícitamente indique que no puede inspeccionar las variables de la tabla, no creo que sea posible. Desde el depurador Transact-SQL

Los lugareños y el reloj . Estas ventanas muestran expresiones de Transact-SQL actualmente asignadas. Las expresiones son cláusulas de Transact-SQL que evalúan a una única expresión escalar . El depurador de Transact-SQL admite expresiones de visualización que hacen referencia a variables, parámetros o variables integradas de Transact-SQL que tienen nombres que comienzan con @@. Estas ventanas también muestran los valores de datos que están actualmente asignados a las expresiones.

( Mi énfasis )

Es decir, solo puedes inspeccionar los escalares.

En cuanto a su intento de usar la ventana Inmediato, las Limitaciones en el Comando y Características del Depurador dice:

Se muestra la ventana Inmediato , pero no puede hacer nada útil con ella, como establecer una variable en un valor o consultar la base de datos.

Nunca he usado mucho el depurador, cada vez que lo veo, encuentro limitaciones como esta.

Es por eso que todavía tiendo a utilizar los enfoques "old-skool" / "printf" para depurar SQL: incluya extra SELECT * s en todo el código mostrando el estado actual de las tablas, y los mensajes PRINT o RAISERROR adicionales que muestren otros estados, etc. Y luego ejecute el código normalmente, hasta que lo haya puesto en forma.


Simplemente coloco declaraciones seleccionadas en mi script y las muestra en la ventana de resultados.

seleccione * de @VarTable;

ahora, cuando paso por mi código y pulso seleccionar, se mostrarán los valores. Luego, o los comente cuando termine de probar o establezca un indicador de prueba.

Espero que esto ayude


Usando el siguiente código, puede ver el contenido de su tabla como XML.

DECLARE @v XML = (SELECT * FROM <tablename> FOR XML AUTO)

Es útil verificar qué devuelven sus declaraciones SELECT. Lo probé y funciona.

Lea más aquí .