Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Piattaforma di strumenti analitici (PDW)
Dopo che un'applicazione invia un'istruzione SQL, SQL Server restituisce tutti i dati risultanti come uno o più set di risultati. Un set di risultati è un set di righe e colonne che corrispondono ai criteri della query. Le istruzioni SELECT, le funzioni di catalogo e alcune stored procedure producono un set di risultati reso disponibile a un'applicazione in formato tabulare. Se l'istruzione SQL eseguita è una stored procedure, un batch contenente più comandi o un'istruzione SELECT contenente parole chiave, il numero di set di risultati da elaborare sarà maggiore.
Anche le funzioni di catalogo ODBC possono recuperare dati. Ad esempio, SQLColumns recupera i dati sulle colonne nell'origine dati. Questi set di risultati possono contenere zero o più righe.
Altre istruzioni SQL, come GRANT o REVOKE, non restituiscono set di risultati. Per queste istruzioni, il codice restituito da SQLExecute o SQLExecDirect è in genere l'unica indicazione che l'istruzione ha avuto esito positivo.
Ogni INSERTistruzione , UPDATE, e DELETE restituisce un insieme di risultati contenente solo il numero di righe interessate dalla modifica. Questo conteggio viene reso disponibile quando l'applicazione chiama SQLRowCount. ODBC 3.Le applicazioni x devono chiamare SQLRowCount per recuperare il set di risultati o SQLMoreResults per annullarlo. Quando un'applicazione esegue una procedura batch o stored contenente più INSERTistruzioni , UPDATE, o DELETE o il set di risultati, il set di risultati di ogni istruzione di modifica deve essere elaborato usando SQLRowCount o cancellato usando SQLMoreResults. Questi conteggi possono essere annullati includendo un'istruzione SET NOCOUNT ON nella procedura batch o memorizzata.
Transact-SQL include la SET NOCOUNT dichiarazione. Quando l'opzione NOCOUNT è attivata, SQL Server non restituisce il conteggio delle righe interessate da un'istruzione e SQLRowCount restituisce 0. La versione del driver ODBC SQL Server Native Client introduce un'opzione SQLGetStmtAttr specifica per il driver, SQL_SOPT_SS_NOCOUNT_STATUS, per segnalare se l'opzione NOCOUNT è attiva o disattivata. Ogni volta che SQLRowCount restituisce 0, l'applicazione deve testare SQL_SOPT_SS_NOCOUNT_STATUS. Se viene restituito SQL_NC_ON, il valore 0 da SQLRowCount indica solo che SQL Server non ha restituito un conteggio delle righe. Se SQL_NC_OFF viene restituito, significa che NOCOUNT è spento e il valore di 0 da SQLRowCount indica che l'istruzione non ha influenzato nessuna riga. Le applicazioni non devono visualizzare il valore di SQLRowCount quando SQL_SOPT_SS_NOCOUNT_STATUS è SQL_NC_OFF. Grandi batch o procedure memorizzate possono contenere più SET NOCOUNT istruzioni affinché i programmatori non possano presumere SQL_SOPT_SS_NOCOUNT_STATUS rimanga costante. L'opzione deve essere testata ogni volta che SQLRowCount restituisce 0.
Diverse altre istruzioni Transact-SQL restituiscono nei messaggi dati anziché set di risultati. Quando il driver ODBC di SQL Server Native Client riceve questi messaggi, restituisce SQL_SUCCESS_WITH_INFO per informare l'applicazione che sono disponibili messaggi informativi. L'applicazione può quindi chiamare SQLGetDiagRec per recuperare questi messaggi. Le istruzioni Transact-SQL che funzionano in questo modo sono:
DBCC
SETSHOWPLAN (disponibile con versioni precedenti di SQL Server)
SET STATISTICS
PRINT
RAISERROR
Il driver ODBC di SQL Server Native Client restituisce SQL_ERROR su raiserror con gravità 11 o superiore. Se la gravità di RAISERROR è 19 o superiore, viene anche interrotta la connessione.
Per elaborare i set di risultati da un'istruzione SQL, l'applicazione:
Determina le caratteristiche del set di risultati.
Associa le colonne a variabili di programma.
Recupera un valore singolo, un'intera riga di valori o più righe di valori.
Verifica se sono presenti altri set di risultati e, in caso affermativo, esegue il ciclo all'indietro per determinare le caratteristiche del nuovo set di risultati.
Il processo che consente di recuperare le righe dall'origine dati e di restituirle alle applicazioni viene denominato anche fetching.
In questa sezione
Vedi anche
SQL Server Client Nativo (ODBC)
Procedure relative all'elaborazione dei risultati (ODBC)