Limitaciones de funciones y comandos del depurador
Actualización: noviembre 2007
Este tema se aplica a:
Edición |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
||||
Estándar |
||||
Pro y Team |
Leyenda de la tabla:
Se aplica |
|
No procede |
|
Comando o comandos ocultos de forma predeterminada. |
El depurador SQL ofrece muchas pero no todas las características de depuración habituales. La depuración de SQL admite la mayoría de los comandos de depuración, como establecer puntos de interrupción y ejecutar instrucciones paso a paso. Puede ver los valores de las variables y de los parámetros que se pasan en la ventana Variables locales. También puede arrastrar expresiones a la ventana Inspección para hacer un seguimiento de las mismas al recorrer o ejecutar el procedimiento.
Sin embargo, la depuración de SQL tiene lugar en un entorno muy diferente, debido a algunas características básicas del propio SQL Server. Algunas limitaciones de depuración sólo se aplican a la depuración de T-SQL o de SQL CLR. Otras limitaciones se aplican a toda la depuración de SQL.
Limitaciones generales de la depuración de SQL
No se puede utilizar Editar y continuar.
No se puede utilizar Ejecutar hasta el cursor en la ventana Pila de llamadas.
No se puede utilizar Interrumpir mientras se está procesando una instrucción SQL.
El resultado de las instrucciones SQL PRINT no aparece en el depurador ni en el panel Resultado de base de datos.
No puede utilizar Revertir automáticamente en Visual Studio. Si reproduce un error que cambia los datos, puede perder el error porque se han cambiado los datos.
Varias ventanas no están disponibles o no proporcionan ninguna función. Estas ventanas son:
Memoria
3DNow!
Desensamblador para T-SQL
Limitaciones de la depuración de T-SQL
No se admiten condiciones y filtros de puntos de interrupción.
Puesto que SQL no tiene memoria o registros verdaderos, no se puede utilizar la ventana Memoria ni la ventana Registros.
No se puede utilizar Establecer instrucción siguiente para cambiar la secuencia de ejecución. Debe seguir el control de flujo y orden de instrucción en el código SQL. Como solución alternativa, puede colocar las instrucciones de control cerca de los bloques de código SQL y cambiar los valores de las variables.
No puede tener acceso a ninguna variable o propiedad de .NET Framework desde dentro de un objeto T-SQL.
Se muestra la ventana Inmediato, pero no puede hacer nada útil con ella, como establecer un valor en una variable o consultar la base de datos.
Varias ventanas no están disponibles o no proporcionan ninguna función. Estas ventanas son:
Desensamblador
Subprocesos
3DNow!
Procesos
Módulos
Limitaciones de la depuración de SQL CLR
Sólo se puede realizar una sesión de depuración de SQL CLR por cada servidor, ya que la ejecución de código de SQL CLR se bloquea cuando se realiza una depuración de SQL CLR. Por este motivo, el usuario del depurador que realiza una depuración de SQL CLR tiene que ser un administrador del sistema de SQL.
Nunca se debe realizar una depuración de SQL CLR en un servidor de producción. La depuración de SQL CLR entraña riesgos: el depurador de SQL CLR puede leer y escribir en la memoria del proceso y puede ejecutar código arbitrario en el proceso de servidor. Detiene a todos los subprocesos administrados en el servidor. Y al finalizar una sesión de depuración, SQL Server se puede detener.
No puede tener acceso a las variables de SQL globales como @@ROWCOUNT cuando se encuentra dentro de un objeto SQL CLR.
En un proyecto de SQL Server en Visual Studio, sólo puede agregar referencias a un subconjunto de las bibliotecas de clases de .NET Framework. No se puede hacer referencia a todos los ensamblados.