Condividi tramite


Utilizzo del tipo di dati

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)

Il driver ODBC di SQL Server Native Client e SQL Server impongono l'uso seguente di tipi di dati.

Tipo di dati Limitazione
Valori letterali data I valori letterali di data, se archiviati in una colonna SQL_TYPE_TIMESTAMP (tipi di dati di SQL Server di datetime o smalldatetime), hanno un valore di ora pari a 12:00:00.000 A.M.
money e smallmoney Solo le parti integer dei tipi di dati money e smallmoney sono significative. Se la parte decimale dei dati SQL Money viene troncata durante la conversione del tipo di dati, il driver ODBC di SQL Server Native Client restituisce un avviso, non un errore.
SQL_BINARY (ammette valori Null) Quando si è connessi a un'istanza di SQL Server versione 6.0 e precedenti, se una colonna SQL_BINARY è nullable, i dati archiviati nell'origine dati non vengono riempiti con zere. Quando vengono recuperati dati da una colonna di questo tipo, il driver ODBC di SQL Server Native Client lo riempie con zeri a destra. Tuttavia, i dati creati nelle operazioni eseguite da SQL Server, ad esempio la concatenazione, non dispongono di tale spaziatura interna.

Inoltre, quando i dati vengono inseriti in una colonna di questo tipo in un'istanza di SQL Server 6.0 o versioni precedenti, SQL Server tronca i dati a destra se è troppo lungo per adattarsi alla colonna.

Nota: il driver ODBC di SQL Server Native Client supporta la connessione a SQL Server 6.5 e versioni precedenti.
SQL_CHAR (troncamento) Quando si è connessi a un'istanza di SQL Server 6.0 e versioni precedenti e i dati vengono inseriti in una colonna SQL_CHAR, SQL Server lo tronca a destra senza avviso se i dati sono troppo lunghi per rientrare nella colonna.

Nota: il driver ODBC di SQL Server Native Client supporta la connessione a SQL Server 6.5 e versioni precedenti.
SQL_CHAR (ammette valori Null) Quando si è connessi a un'istanza di SQL Server 6.0 e versioni precedenti, se una colonna SQL_CHAR è nullable, i dati archiviati nell'origine dati non vengono riempiti con spazi vuoti. Quando vengono recuperati dati da una colonna di questo tipo, il driver ODBC di SQL Server Native Client lo riempie con spazi vuoti a destra. Tuttavia, i dati creati nelle operazioni eseguite da SQL Server, ad esempio la concatenazione, non dispongono di tale spaziatura interna.

Nota: il driver ODBC di SQL Server Native Client supporta la connessione a SQL Server 6.5 e versioni precedenti.
SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_WLONGVARCHAR Gli aggiornamenti delle colonne con SQL_LONGVARBINARY, SQL_LONGVARCHAR o SQL_WLONGVARCHAR tipi di dati (usando una clausola WHERE) che influiscono su più righe sono completamente supportati quando si è connessi a un'istanza di SQL Server 6.x e versioni successive. Quando si è connessi a un'istanza di SQL Server 4.2x, si è verificato un errore S1000, "Inserimento/aggiornamento parziale. L'inserimento o l'aggiornamento del testo o delle colonne di immagini non è stato completato", se l'aggiornamento riguarda più di una riga.

Nota: il driver ODBC di SQL Server Native Client supporta la connessione a SQL Server 6.5 e versioni precedenti.
Parametri delle funzioni per i valori stringa string_exp parametri per le funzioni stringa devono essere di tipo dati SQL_CHAR o SQL_VARCHAR. I tipi di dati SQL_LONG_VARCHAR non sono supportati nelle funzioni per i valori stringa. Il parametro count deve essere minore o uguale a 8.000 perché i tipi di dati SQL_CHAR e SQL_VARCHAR sono limitati a una lunghezza massima di 8.000 caratteri.
Valori letterali ora I valori letterali ora, se archiviati in una colonna SQL_TIMESTAMP (tipi di dati di SQL Server di datetime o smalldatetime), hanno un valore di data del 1° gennaio 1900.
timestamp Solo un valore NULL può essere inserito manualmente in una colonna timestamp . Tuttavia, poiché le colonne timestampvengono aggiornate automaticamente da SQL Server, viene sovrascritto un valore NULL.
tinyint Il tipo di dati tinyint di SQL Server non è firmato. Una colonna tinyint è associata a una variabile di tipo di dati SQL_C_UTINYINT per impostazione predefinita.
Tipi di dati alias Quando si è connessi a un'istanza di SQL Server 4.2x, il driver ODBC aggiunge NULL a una definizione di colonna che non dichiara esplicitamente il supporto dei valori Null di una colonna. Per questo motivo, il supporto di valori Null che viene archiviato nella definizione di un tipo di dati alias viene ignorato.

Quando si è connessi a un'istanza di SQL Server 4.2x, le colonne con un tipo di dati alias con tipo di dati di base char o binary e per cui non viene dichiarata nullità vengono create come tipo di dati varchar o varbinary. SQLColAttribute, SQLColumns e SQLDescribeCol restituiscono SQL_VARCHAR o SQL_VARBINARY come tipo di dati per queste colonne. Ai dati recuperati da queste colonne non viene applicato il riempimento.

Nota: il driver ODBC di SQL Server Native Client supporta la connessione a SQL Server 6.5 e versioni precedenti.
Tipi di dati LONG I parametri data-at-execution sono limitati sia per il SQL_LONGVARBINARY che per i tipi di dati SQL_LONGVARCHAR.
Tipi per valori di grandi dimensioni Il driver ODBC di SQL Server Native Client espone i tipi varchar(max), varbinary(max)e nvarchar(max) come SQL_VARCHAR, SQL_VARBINARY e SQL_WVARCHAR (rispettivamente) nelle API che accettano o restituiscono tipi di dati SQL ODBC.
Tipo definito dall'utente (UDT) Le colonne con tipo definito dall'utente vengono mappate come SQL_SS_UDT. Se una colonna con tipo definito dall'utente viene mappata in modo esplicito a un altro tipo nell'istruzione SQL mediante i metodi ToString() o ToXMLString() del tipo definito dall'utente oppure mediante le funzioni CAST/CONVERT, il tipo di colonna nel set di risultati rifletterà il tipo effettivo nel quale è stata convertita la colonna.

Il driver ODBC di SQL Server Native Client può essere associato solo a una colonna definita dall'utente come binaria. SQL Server supporta solo la conversione tra i tipi di dati SQL_SS_UDT e SQL_C_BINARY.
XML SQL Server convertirà automaticamente il codice XML in testo Unicode. Il tipo XML viene mappato come SQL_SS_XML.

Vedi anche

Risultati dell'elaborazione (ODBC)