Condividi tramite


Utilizzo del tipo di dati

Si applica a: SQL Server Azure SQL DatabaseIstanza gestita di SQL di AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)

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

Tipo di dati Limitazione
Valori letterali data I valori letterali data, se archiviati in una colonna SQL_TYPE_TIMESTAMP (SQL Server tipi di dati 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 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 zeli. Quando vengono recuperati dati da una colonna di questo tipo, il driver ODBC SQL Server Native Client lo riempie di zeri a destra. Tuttavia, i dati creati nelle operazioni eseguite da SQL Server, ad esempio la concatenazione, non hanno 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 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 troncarlo a destra senza preavviso se i dati sono troppo lunghi per adattarsi alla colonna.

Nota: il driver ODBC 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 i dati di una colonna di questo tipo vengono recuperati, il driver ODBC SQL Server Native Client lo riempie di spazi vuoti a destra. Tuttavia, i dati creati nelle operazioni eseguite da SQL Server, ad esempio la concatenazione, non hanno tale spaziatura interna.

Nota: il driver ODBC SQL Server Native Client supporta la connessione a SQL Server 6.5 e versioni precedenti.
SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_WLONGVARCHAR Aggiornamenti di colonne con tipi di dati SQL_LONGVARBINARY, SQL_LONGVARCHAR o SQL_WLONGVARCHAR (tramite una clausola WHERE) che influiscono su più righe sono completamente supportate 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 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 (SQL Server tipi di dati datetime o smalldatetime), hanno un valore di data pari al 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 SQL Server tipo di dati tinyint 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 i 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 dichiarato alcun valore Nullbility 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 SQL Server Native Client supporta la connessione a SQL Server 6.5 e versioni precedenti.
Tipi di dati LONG I parametri di dati in fase di esecuzione sono limitati sia per i tipi di dati SQL_LONGVARBINARY che per i tipi di dati SQL_LONGVARCHAR.
Tipi per valori di grandi dimensioni Il driver ODBC SQL Server Native Client espone i tipi varchar(max), varbinary(max)e nvarchar(max) come tipi 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 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.

Vedere anche

Risultati dell'elaborazione (ODBC)