SQLGetDiagField

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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 Instrucción CREATE PROCEDURE
SQL_DIAG_DFC_SS_CREATE_RULE Instrucción CREATE RULE
SQL_DIAG_DFC_SS_CREATE_TRIGGER Instrucción CREATE TRIGGER
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 Instrucción DENY
SQL_DIAG_DFC_SS_DROP_DATABASE Instrucción DROP DATABASE
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 BACKUPo sentencia DUMP DATABASE
SQL_DIAG_DFC_SS_DUMP_TABLE Sentencia DUMP TABLE
SQL_DIAG_DFC_SS_DUMP_TRANSACTION BACKUP o extracto 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 INSERT Sentencia BULK
SQL_DIAG_DFC_SS_KILL Instrucción KILL
SQL_DIAG_DFC_SS_LOAD_DATABASE LOAD o RESTOREDATABASE sentencia
SQL_DIAG_DFC_SS_LOAD_HEADERONLY LOAD o RESTORE HEADERONLY sentencia
SQL_DIAG_DFC_SS_LOAD_TABLE Instrucción LOAD TABLE
SQL_DIAG_DFC_SS_LOAD_TRANSACTION 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 SET Sentencia (genérica, todas las opciones)
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT Instrucción SET IDENTITY_INSERT
SQL_DIAG_DFC_SS_SET_ROW_COUNT Instrucción SET ROWCOUNT
SQL_DIAG_DFC_SS_SET_STATISTICS SET SET STATISTICS IO o SETSET STATISTICS TIME enunciados
SQL_DIAG_DFC_SS_SET_TEXTSIZE Instrucción SET TEXTSIZE
SQL_DIAG_DFC_SS_SETUSER Instrucción SETUSER
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 Instrucción TRUNCATE TABLE
SQL_DIAG_DFC_SS_UPDATE_STATISTICS UPDATE UPDATE STATISTICS Enunciado
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