Comparteix a través de


SQLGetDiagField

Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)

El controlador ODBC de SQL Server Native Client especifica los siguientes campos de diagnóstico adicionales para SQLGetDiagField. Estos campos admiten informes de errores enriquecidos para las aplicaciones de SQL Server y están disponibles en todos los registros de diagnóstico generados en los identificadores de conexión ODBC conectados y los identificadores de instrucciones ODBC. Los campos se definen en sqlncli.h.

Campo del registro de diagnóstico Descripción
SQL_DIAG_SS_LINE Indica el número de línea de un procedimiento almacenado que genera un error. El valor de SQL_DIAG_SS_LINE solamente es significativo si SQL_DIAG_SS_PROCNAME devuelve un valor. El valor se devuelve como un entero sin signo de 16 bits.
SQL_DIAG_SS_MSGSTATE El estado de un mensaje de error. Para obtener información sobre el estado del mensaje de error, vea RAISERROR. El valor se devuelve como un entero con signo de 32 bits.
SQL_DIAG_SS_PROCNAME Nombre del procedimiento almacenado que genera un error, si procede. El valor se devuelve como una cadena de caracteres. La longitud de la cadena (en caracteres) depende de la versión de SQL Server. Se puede determinar mediante una llamada a SQLGetInfo que solicita el valor para SQL_MAX_PROCEDURE_NAME_LEN.
SQL_DIAG_SS_SEVERITY El nivel de gravedad del mensaje de error asociado. El valor se devuelve como un entero con signo de 32 bits.
SQL_DIAG_SS_SRVNAME El nombre del servidor donde se ha producido el error. El valor se devuelve como una cadena de caracteres. La longitud de la cadena (en caracteres) se define en la macro SQL_MAX_SQLSERVERNAME de sqlncli.h.

Los campos de diagnóstico específicos de SQL Server que contienen datos de caracteres, SQL_DIAG_SS_PROCNAME y SQL_DIAG_SS_SRVNAME, devuelven esos datos al cliente como cadenas terminadas en NULL, ANSI o Unicode. Si es necesario, el ancho de caracteres debe ajustar el recuento de caracteres. También se puede utilizar un tipo de datos de C portátil como TCHAR o SQLTCHAR para garantizar la longitud correcta de la variable de programa.

El controlador ODBC de SQL Server Native Client informa de los siguientes códigos de función dinámica adicionales que identifican la última instrucción de SQL Server que se intentó. El código de función dinámica se devuelve en el encabezado (registro 0) del conjunto de registros de diagnóstico y está por tanto disponible en cada ejecución (correcta o no).

Código de función dinámica Source
SQL_DIAG_DFC_SS_ALTER_DATABASE instrucción ALTER DATABASE
SQL_DIAG_DFC_SS_CHECKPOINT Instrucción CHECKPOINT
SQL_DIAG_DFC_SS_CONDITION Error surgido en las cláusulas WHERE o HAVING de una instrucción.
SQL_DIAG_DFC_SS_CREATE_DATABASE Instrucción CREATE DATABASE
SQL_DIAG_DFC_SS_CREATE_DEFAULT Instrucción CREATE DEFAULT
SQL_DIAG_DFC_SS_CREATE_PROCEDURE CREATE PROCEDURE, instrucción
SQL_DIAG_DFC_SS_CREATE_RULE Instrucción CREATE RULE
SQL_DIAG_DFC_SS_CREATE_TRIGGER CREATE TRIGGER, instrucción
SQL_DIAG_DFC_SS_CURSOR_DECLARE DECLARE CURSOR, instrucción
SQL_DIAG_DFC_SS_CURSOR_OPEN OPEN, instrucción
SQL_DIAG_DFC_SS_CURSOR_FETCH FETCH, instrucción
SQL_DIAG_DFC_SS_CURSOR_CLOSE Instrucción CLOSE
SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR DEALLOCATE, instrucción
SQL_DIAG_DFC_SS_DBCC Instrucción DBCC
SQL_DIAG_DFC_SS_DENY DENY, instrucción
SQL_DIAG_DFC_SS_DROP_DATABASE DROP DATABASE, instrucción
SQL_DIAG_DFC_SS_DROP_DEFAULT Instrucción DROP DEFAULT
SQL_DIAG_DFC_SS_DROP_PROCEDURE Instrucción DROP PROCEDURE
SQL_DIAG_DFC_SS_DROP_RULE Instrucción DROP RULE
SQL_DIAG_DFC_SS_DROP_TRIGGER Instrucción DROP TRIGGER
SQL_DIAG_DFC_SS_DUMP_DATABASE Instrucción BACKUP o DUMP DATABASE
SQL_DIAG_DFC_SS_DUMP_TABLE Instrucción DUMP TABLE
SQL_DIAG_DFC_SS_DUMP_TRANSACTION Instrucción BACKUP o DUMP TRANSACTION. También se devuelve para una instrucción CHECKPOINT si la trunc. log en chkpt. la opción de base de datos está activada.
SQL_DIAG_DFC_SS_GOTO Instrucción GOTO de control de flujo
SQL_DIAG_DFC_SS_INSERT_BULK Instrucción INSERT BULK
SQL_DIAG_DFC_SS_KILL Instrucción KILL
SQL_DIAG_DFC_SS_LOAD_DATABASE Instrucción LOAD o RESTORE DATABASE
SQL_DIAG_DFC_SS_LOAD_HEADERONLY Instrucción LOAD o RESTORE HEADERONLY
SQL_DIAG_DFC_SS_LOAD_TABLE Instrucción LOAD TABLE
SQL_DIAG_DFC_SS_LOAD_TRANSACTION Instrucción LOAD o RESTORE TRANSACTION
SQL_DIAG_DFC_SS_PRINT PRINT, instrucción
SQL_DIAG_DFC_SS_RAISERROR RAISERROR, instrucción
SQL_DIAG_DFC_SS_READTEXT Instrucción READTEXT
SQL_DIAG_DFC_SS_RECONFIGURE Instrucción RECONFIGURE
SQL_DIAG_DFC_SS_RETURN Instrucción RETURN de control de flujo
SQL_DIAG_DFC_SS_SELECT_INTO Instrucción SELECT INTO
SQL_DIAG_DFC_SS_SET Instrucción SET (genérico, todas las opciones)
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT SET IDENTITY_INSERT, instrucción
SQL_DIAG_DFC_SS_SET_ROW_COUNT SET ROWCOUNT, instrucción
SQL_DIAG_DFC_SS_SET_STATISTICS Instrucción SET STATISTICS IO o SET STATISTICS TIME
SQL_DIAG_DFC_SS_SET_TEXTSIZE SET TEXTSIZE, instrucción
SQL_DIAG_DFC_SS_SETUSER SETUSER, instrucción
SQL_DIAG_DFC_SS_SET_XCTLVL Instrucción SET TRANSACTION ISOLATION LEVEL
SQL_DIAG_DFC_SS_SHUTDOWN Instrucción SHUTDOWN
SQL_DIAG_DFC_SS_TRANS_BEGIN Instrucción BEGIN TRAN
SQL_DIAG_DFC_SS_TRANS_COMMIT Instrucción COMMIT TRAN
SQL_DIAG_DFC_SS_TRANS_PREPARE Preparación para confirmar una transacción distribuida
SQL_DIAG_DFC_SS_TRANS_ROLLBACK Instrucción ROLLBACK TRAN
SQL_DIAG_DFC_SS_TRANS_SAVE Instrucción SAVE TRAN
SQL_DIAG_DFC_SS_TRUNCATE_TABLE TRUNCATE TABLE, instrucción
SQL_DIAG_DFC_SS_UPDATE_STATISTICS UPDATE STATISTICS, instrucción
SQL_DIAG_DFC_SS_UPDATETEXT instrucción UPDATETEXT
SQL_DIAG_DFC_SS_USE USE, instrucción
SQL_DIAG_DFC_SS_WAITFOR Instrucción WAITFOR de control de flujo
SQL_DIAG_DFC_SS_WRITETEXT Instrucción WRITETEXT

SQLGetDiagField y parámetros con valores de tabla

SQLGetDiagField se puede usar para recuperar dos campos de diagnóstico: SQL_DIAG_SS_TABLE_COLUMN_NUMBER y SQL_DIAG_SS_TABLE_ROW_NUMBER. Estos campos ayudan a determinar qué valor produjo el error o la advertencia asociados al registro de diagnóstico.

Para obtener más información sobre los parámetros con valores de tabla, vea Parámetros con valores de tabla (ODBC).

Consulte también

Función SQLGetDiagField
Detalles de implementación de la API de ODBC