Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Actualización: noviembre 2007
Este tema se aplica a:
Edición |
Visual Basic |
C# |
C++ |
Web Developer |
|---|---|---|---|---|
Express |
![]() |
![]() |
![]() |
![]() |
Standard |
![]() |
![]() |
![]() |
![]() |
Pro y Team |
![]() |
![]() |
![]() |
![]() |
Leyenda de la tabla:
![]() |
Se aplica |
![]() |
No procede |
![]() |
Comando o comandos ocultos de manera predeterminada. |
Precaución: |
|---|
Los procedimientos almacenados extendidos han quedado obsoletos. Si bien continúa admitiéndose su uso por motivos de compatibilidad con las versiones anteriores en ASP.NET, ya no será así en futuras versiones. |
Los procedimientos almacenados extendidos se introdujeron para permitir la realización de acciones que no son posibles en T-SQL, como tener acceso al sistema de archivos, leer el Registro, etc. Ahora que puede hacer todas estas tareas escribiendo procedimientos SQL CLR, se ha eliminado la necesidad de escribir procedimientos almacenados extendidos. Se recomienda no escribir nuevos procedimientos almacenados extendidos y considerar la posibilidad de reemplazar los existentes con procedimientos almacenados de SQL CLR equivalentes, más seguros.
Los procedimientos almacenados extendidos son archivos DLL escritos en C++ o en cualquier otro lenguaje, en lugar de SQL. Por lo tanto, depurar un procedimiento almacenado extendido es muy similar a depurar cualquier archivo DLL en ese lenguaje.
Precaución: |
|---|
Los procedimientos almacenados extendidos suelen escribirse en código C++ nativo y no tienen las protecciones que ofrece el código administrado. Deben probarse cuidadosamente porque los errores podrían bloquear SQL Server. Para evitar la pérdida potencial de datos y otros problemas, no depure un procedimiento almacenado extendido en un servidor de producción. Para obtener más información, vea los Libros en pantalla de ASP.NET. |
Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Para cambiar la configuración, elija Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.
Para depurar un procedimiento almacenado extendido
Comience por una versión de depuración de un archivo DLL de procedimiento almacenado extendido. También necesita una aplicación que llame al procedimiento almacenado extendido que desea depurar. Si no tiene ninguna preparada, realice una de las siguientes acciones:
Crear un proyecto de base de datos de Visual Studio con una conexión a la base de datos que contiene el procedimiento almacenado extendido y el código para llamarlo.
Crear un archivo de secuencias de comandos SQL que llame al procedimiento almacenado extendido.
O bien
Utilizar una aplicación como ISQL/W, que se incluye con SQL Server, u ODBC Test, que se incluye con ODBC SDK.
Si SQL Server se está ejecutando como un servicio, para detenerlo abra el panel de control Servicios, seleccione SQL Server y haga clic en Detener.
Copie la versión de depuración del archivo DLL al directorio donde reside sqlservr.exe o a cualquier directorio de la ruta de búsqueda.
O bien
Establezca un evento posterior a la generación para copiar el archivo DLL en el proyecto de C++ como sigue:
Abra el cuadro de diálogo Páginas de propiedades de <Proyecto> .
En el cuadro de diálogo Páginas de propiedades de <Proyecto>, abra la carpeta Propiedades de configuración.
En Propiedades de configuración, abra la carpeta Eventos de generación.
Seleccione Evento posterior a la generación.
En el control de cuadrícula, junto a Línea de comandos, escriba un comando copiar, como en el siguiente ejemplo:
Copy c:\MyProjects\MyXProc\debug\MyXProc.dll C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
Registre el procedimiento almacenado extendido.
Especifique SQL Server como archivo ejecutable de llamada y directorio de trabajo para la DLL de procedimiento almacenado extendido. Modifique la configuración en el cuadro de diálogo Páginas de propiedades de <Proyecto>, al que puede tener acceso en la categoría Debugging de Propiedades de configuración, de la manera siguiente:
Si SQL Server se instaló en la ubicación predeterminada, escriba C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\SQLSERVR.EXE en el cuadro Comando.
Establezca la entrada Directorio de trabajo en C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Binn.
Establezca la entrada Argumentos del comando en -c. La opción -c indica a SQL Server que se está iniciando desde la línea de comandos en lugar de como un servicio, lo que hará que SQL Server se inicie más rápido. SQL Server no se iniciará como servicio, sino como una aplicación de consola bajo el control del entorno de depuración de Visual Studio. Esto permite interceptar y controlar adecuadamente los puntos de interrupción.
Establezca puntos de interrupción en el código fuente del procedimiento almacenado extendido.
Utilice un comando de ejecución para iniciar la sesión de depuración. Para obtener más información, vea Control de ejecución.
Al iniciarse SQL Server aparecerá una ventana de consola. Cuando se detenga el desplazamiento del texto, el último mensaje será:
Se inicia el procedimiento de inicio 'sp_sqlregister'.
SQL Server se inicia y comienza a procesar solicitudes.
Ejecute el procedimiento almacenado extendido.
El depurador se interrumpe cuando llega a una línea que contiene un punto de interrupción.
Para obtener sugerencias adicionales acerca de la forma de escribir procedimientos almacenados extendidos, consulte la sección de Microsoft Knowledge Base de SQL Server o la sección Programación de procedimientos almacenados extendidos de la documentación de SQL Server en MSDN Library.
.gif)
.gif)
.gif)
Precaución: