SQLGetDiagField

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)

O driver ODBC do SQL Server Native Client especifica os seguintes campos de diagnóstico adicionais para SQLGetDiagField. Esses campos dão suporte a relatórios de erros avançados para aplicativos do SQL Server e estão disponíveis em todos os registros de diagnóstico gerados em identificadores de conexão ODBC conectados e identificadores de instrução ODBC. Os campos são definidos em sqlncli.h.

Campo de registro de diagnóstico Descrição
SQL_DIAG_SS_LINE Informa o número da linha de um procedimento armazenado que gera um erro. O valor de SQL_DIAG_SS_LINE só será útil se SQL_DIAG_SS_PROCNAME retornar um valor. O valor é retornado como um inteiro de 16 bits sem-sinal.
SQL_DIAG_SS_MSGSTATE O estado de uma mensagem de erro. Para obter informações sobre o estado da mensagem de erro, consulte RAISERROR. O valor é retornado como um inteiro de 32 bits com assinatura.
SQL_DIAG_SS_PROCNAME O nome do procedimento armazenado que gera um erro, se apropriado. O valor é retornado como uma cadeia de caracteres. O comprimento da cadeia de caracteres (em caracteres) depende da versão do SQL Server. Ele pode ser determinado chamando SQLGetInfo solicitando o valor para SQL_MAX_PROCEDURE_NAME_LEN.
SQL_DIAG_SS_SEVERITY O nível de severidade da mensagem de erro associada. O valor é retornado como um inteiro de 32 bits com assinatura.
SQL_DIAG_SS_SRVNAME O nome do servidor no qual o erro ocorreu. O valor é retornado como uma cadeia de caracteres. O comprimento da cadeia de caracteres (em caracteres) é definido pela macro SQL_MAX_SQLSERVERNAME em sqlncli.h.

Os campos de diagnóstico específicos do SQL Server que contêm dados de caracteres, SQL_DIAG_SS_PROCNAME e SQL_DIAG_SS_SRVNAME, retornam esses dados ao cliente como cadeias de caracteres terminadas em nulo, ANSI ou Unicode. Se necessário, a contagem de caracteres deve ser ajustada de acordo com a largura do caractere. Como opção, um tipo de dados C portátil, como TCHAR ou SQLTCHAR, pode ser usado para garantir o comprimento variável correto do programa.

O driver ODBC do SQL Server Native Client relata os seguintes códigos de função dinâmica adicionais que identificam a última tentativa de instrução do SQL Server. O código de função dinâmico é retornado no cabeçalho (record 0) do registro de diagnóstico definido e, portanto, está disponível em cada execução (bem-sucedida ou não).

Código de função dinâmico Origem
SQL_DIAG_DFC_SS_ALTER_DATABASE Instrução ALTER DATABASE
SQL_DIAG_DFC_SS_CHECKPOINT Instrução CHECKPOINT
SQL_DIAG_DFC_SS_CONDITION O erro ocorreu nas cláusulas WHERE ou HAVING de uma instrução.
SQL_DIAG_DFC_SS_CREATE_DATABASE Instrução CREATE DATABASE
SQL_DIAG_DFC_SS_CREATE_DEFAULT Instrução CREATE DEFAULT
SQL_DIAG_DFC_SS_CREATE_PROCEDURE Instrução CREATE PROCEDURE
SQL_DIAG_DFC_SS_CREATE_RULE Instrução CREATE RULE
SQL_DIAG_DFC_SS_CREATE_TRIGGER Instrução CREATE TRIGGER
SQL_DIAG_DFC_SS_CURSOR_DECLARE Instrução DECLARE CURSOR
SQL_DIAG_DFC_SS_CURSOR_OPEN Instrução OPEN
SQL_DIAG_DFC_SS_CURSOR_FETCH Instrução FETCH
SQL_DIAG_DFC_SS_CURSOR_CLOSE Instrução CLOSE
SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR Instrução DEALLOCATE
SQL_DIAG_DFC_SS_DBCC Instrução DBCC
SQL_DIAG_DFC_SS_DENY Instrução DENY
SQL_DIAG_DFC_SS_DROP_DATABASE Instrução DROP DATABASE
SQL_DIAG_DFC_SS_DROP_DEFAULT Instrução DROP DEFAULT
SQL_DIAG_DFC_SS_DROP_PROCEDURE Instrução DROP PROCEDURE
SQL_DIAG_DFC_SS_DROP_RULE Instrução DROP RULE
SQL_DIAG_DFC_SS_DROP_TRIGGER Instrução DROP TRIGGER
SQL_DIAG_DFC_SS_DUMP_DATABASE BACKUPou instrução DUMP DATABASE
SQL_DIAG_DFC_SS_DUMP_TABLE Instrução DUMP TABLE
SQL_DIAG_DFC_SS_DUMP_TRANSACTION BACKUP ou extrato DUMP TRANSACTION. Também retornado para uma instrução CHECKPOINT se a opção trunc. log on chkpt. database estiver ativada.
SQL_DIAG_DFC_SS_GOTO Instrução de controle de fluxo GOTO
SQL_DIAG_DFC_SS_INSERT_BULK INSERT Instrução BULK
SQL_DIAG_DFC_SS_KILL Instrução KILL
SQL_DIAG_DFC_SS_LOAD_DATABASE LOAD ou RESTOREDATABASE instrução
SQL_DIAG_DFC_SS_LOAD_HEADERONLY LOAD ou RESTORE HEADERONLY instrução
SQL_DIAG_DFC_SS_LOAD_TABLE Instrução LOAD TABLE
SQL_DIAG_DFC_SS_LOAD_TRANSACTION LOAD ou RESTORE TRANSACTION instrução
SQL_DIAG_DFC_SS_PRINT instrução PRINT
SQL_DIAG_DFC_SS_RAISERROR instrução RAISERROR
SQL_DIAG_DFC_SS_READTEXT Instrução READTEXT
SQL_DIAG_DFC_SS_RECONFIGURE Instrução RECONFIGURE
SQL_DIAG_DFC_SS_RETURN Instrução de controle de fluxo RETURN
SQL_DIAG_DFC_SS_SELECT_INTO instrução SELECT INTO
SQL_DIAG_DFC_SS_SET SET Instrução (genérica, todas as opções)
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT Instrução SET IDENTITY_INSERT
SQL_DIAG_DFC_SS_SET_ROW_COUNT Instrução SET ROWCOUNT
SQL_DIAG_DFC_SS_SET_STATISTICS SET SET STATISTICS IO ou SETSET STATISTICS TIME afirmações
SQL_DIAG_DFC_SS_SET_TEXTSIZE Instrução SET TEXTSIZE
SQL_DIAG_DFC_SS_SETUSER Instrução SETUSER
SQL_DIAG_DFC_SS_SET_XCTLVL Instrução SET TRANSACTION ISOLATION LEVEL
SQL_DIAG_DFC_SS_SHUTDOWN Instrução SHUTDOWN
SQL_DIAG_DFC_SS_TRANS_BEGIN Instrução BEGIN TRAN
SQL_DIAG_DFC_SS_TRANS_COMMIT Instrução COMMIT TRAN
SQL_DIAG_DFC_SS_TRANS_PREPARE Preparar para confirmar uma transação distribuída
SQL_DIAG_DFC_SS_TRANS_ROLLBACK Instrução ROLLBACK TRAN
SQL_DIAG_DFC_SS_TRANS_SAVE Instrução SAVE TRAN
SQL_DIAG_DFC_SS_TRUNCATE_TABLE Instrução TRUNCATE TABLE
SQL_DIAG_DFC_SS_UPDATE_STATISTICS UPDATE UPDATE STATISTICS Enunciado
SQL_DIAG_DFC_SS_UPDATETEXT instrução UPDATETEXT
SQL_DIAG_DFC_SS_USE instrução USE
SQL_DIAG_DFC_SS_WAITFOR Instrução de controle de fluxo WAITFOR
SQL_DIAG_DFC_SS_WRITETEXT Instrução WRITETEXT

SQLGetDiagField e parâmetros com valor de tabela

SQLGetDiagField pode ser usado para recuperar dois campos de diagnóstico: SQL_DIAG_SS_TABLE_COLUMN_NUMBER e SQL_DIAG_SS_TABLE_ROW_NUMBER. Esses campos ajudam a determinar qual valor gerou o erro ou a mensagem de advertência associada ao registro de diagnóstico.

Para obter mais informações sobre parâmetros com valor de tabela, consulte ODBC (Parâmetros com valor de tabela).