Tipi di dati (Motore di database)

Agli oggetti contenenti dati è associato un tipo di dati che definisce la tipologia dei dati che è possibile includere nell'oggetto, ovvero caratteri, numeri interi o valori binari. Gli oggetti a cui è associato un tipo di dati sono i seguenti:

  • Colonne di tabelle e viste.

  • Parametri di stored procedure.

  • Variabili.

  • Funzioni Transact-SQL che restituiscono uno o più valori di dati di un tipo specifico.

  • Stored procedure con codice restituito, che è sempre di tipo integer.

Mediante l'assegnazione di un tipo di dati a un oggetto è possibile definire quattro attributi dell'oggetto:

  • Il tipo di dati del contenuto dell'oggetto.

  • La lunghezza, o dimensioni, del valore archiviato.

  • La precisione del numero (solo per i tipi di dati numerici).

  • La scala del numero (solo per i tipi di dati numerici).

Per ulteriori informazioni sulla precisione, sulla scala e sulla lunghezza del tipo di dati, vedere Precisione, scala e lunghezza (Transact-SQL).

Per Transact-SQL sono disponibili i tipi di dati di sistema seguenti.

Tutti i dati archiviati in Microsoft SQL Server devono essere compatibili con uno di questi tipi di dati di base. Il tipo di dati cursor è l'unico tipo di dati che non è possibile assegnare a una colonna di tabella, ma solo a variabili e parametri di stored procedure.

Per numerosi tipi di dati di base sono disponibili sinonimi. Ad esempio, rowversion è un sinonimo di timestamp, mentre national character varying è un sinonimo di nvarchar. Per ulteriori informazioni sul funzionamento dei sinonimi, vedere Sinonimi dei tipi di dati (Transact-SQL).

È inoltre possibile creare due tipi di dati definiti dall'utente:

  • I tipi di dati alias vengono creati dai tipi di dati di base e consentono di associare un nome a un tipo di dati specifico per descrivere meglio il tipo di valori da includere nell'oggetto. Ciò consente a un programmatore o a un amministratore di database di capire più facilmente quale sia l'utilizzo progettato per ogni oggetto definito con un tipo di dati specifico. Ad esempio:

    -- Create a birthday datetype that allows nulls.
    CREATE TYPE birthday
    FROM datetime NULL
    GO
    -- Create a table using the new data type.
    CREATE TABLE employee (emp_id char(5), emp_first_name char(30), emp_last_name char(40), emp_birthday birthday)
    

    Per ulteriori informazioni, vedere Utilizzo dei tipi di dati alias.

  • I tipi di dati CLR definiti dall'utente sono basati su tipi di dati creati in codice gestito e caricati in un assembly di SQL Server Server. Per ulteriori informazioni, vedere Utilizzo di tipi CLR definiti dall'utente.