Condividi tramite


Definizione di tabelle e colonne con tipi definiti dall'utente

Dopo che l'assembly contenente la definizione del tipo definito dall'utente è stato registrato in un database di MicrosoftSQL Server, può essere utilizzato in una definizione di colonna.

Creazione di tabelle con tipo definito dall'utente

Per la creazione di una colonna con tipo definito dall'utente in una tabella non è necessaria una sintassi speciale. È possibile utilizzare il nome del tipo definito dall'utente in una definizione di colonna come se fosse uno dei tipi di dati intrinseci di SQL Server. Nell'istruzione Transact-SQL CREATE TABLE seguente viene creata una tabella denominata Points, con una colonna denominata ID, definita come colonna di identità int, insieme alla chiave primaria per la tabella. La seconda colonna è denominata PointValue, con un tipo di dati Point. Il nome dello schema utilizzato nell'esempio è dbo. Si noti che per specificare un nome di schema è necessario disporre delle autorizzazioni appropriate. Se si omette il nome dello schema, viene utilizzato lo schema predefinito per l'utente del database.

CREATE TABLE dbo.Points 
(ID int IDENTITY(1,1) PRIMARY KEY, PointValue Point)

Creazione di indici in colonne con tipo definito dall'utente

Per indicizzare una colonna con tipo definito dall'utente, sono disponibili due opzioni:

  • Indicizzare il valore completo. In questo caso, se il tipo definito dall'utente ha ordinamento binario, è possibile creare un indice sull'intera colonna con tipo definito dall'utente utilizzando l'istruzione Transact-SQL CREATE INDEX.

  • Indicizzare espressioni dei tipi definiti dall'utente. È possibile creare indici in colonne calcolate persistenti su espressioni dei tipi definiti dall'utente. L'espressione del tipo definito dall'utente può essere un campo, un metodo o una proprietà di un tipo definito dall'utente. L'espressione deve essere deterministica e non deve eseguire accesso ai dati.

Per ulteriori informazioni, vedere Tipi CLR definiti dall'utente e CREATE INDEX (Transact-SQL).