Condividi tramite


Usare le colonne IDENTITY per creare chiavi surrogate in Fabric Data Warehouse

si applica a:✅ Magazzino di dati in Microsoft Fabric

Questa esercitazione illustra come usare IDENTITY le colonne in Fabric Data Warehouse per creare e gestire le chiavi surrogate in modo efficiente.

Prerequisiti

  • Avere accesso a un elemento Warehouse in un'area di lavoro, con autorizzazioni di Collaboratore o superiori.
  • Scegli lo strumento di query. Questa esercitazione include l'editor di query SQL nel portale di Microsoft Fabric, ma è possibile usare qualsiasi strumento di query T-SQL.
  • Conoscenza di base di T-SQL.

Che cos'è una colonna IDENTITY?

Una IDENTITY colonna è una colonna numerica che genera automaticamente valori univoci per le nuove righe. In questo modo è ideale per l'implementazione di chiavi surrogate, in quanto garantisce che ogni riga riceva un identificatore univoco senza input manuale.

Creare una colonna IDENTITY

Per definire una IDENTITY colonna, specificare la parola chiave IDENTITY nella definizione di colonna della CREATE TABLE sintassi T-SQL:

CREATE TABLE { warehouse_name.schema_name.table_name | schema_name.table_name | table_name } (
    [column_name] BIGINT IDENTITY,
    [ ,... n ],
    -- Other columns here
);

Annotazioni

In Fabric Data Warehouse bigint è l'unico tipo di dati supportato per IDENTITY le colonne. Inoltre, le seed proprietà e increment di T-SQL IDENTITY non sono supportate. Per altre informazioni, vedere Colonne IDENTITY e IDENTITY (Transact-SQL). Per altre informazioni sulla creazione di tabelle, vedere Creare tabelle in Warehouse in Microsoft Fabric.

Creare una tabella con una colonna IDENTITY

In questa esercitazione, creeremo una versione più semplice della tabella Trip dall'open dataset NY Taxi, e aggiungeremo una nuova colonna TripIDIDENTITY. Ogni volta che viene inserita una nuova riga, TripID viene assegnato un nuovo valore univoco nella tabella.

  1. Definire una tabella con una IDENTITY colonna:

     CREATE TABLE dbo.Trip
     (
         TripID BIGINT IDENTITY,
         DateID int,
         MedallionID int,
         HackneyLicenseID int,
         PickupTimeID int,
         DropoffTimeID int
     );
    
  2. Si userà COPY INTO quindi per inserire alcuni dati in questa tabella. Quando si usa COPY INTO con IDENTITY colonne, è necessario specificare l'elenco di colonne, mappandole alle colonne nei dati di origine.

    COPY INTO Trip (DateID 1, MedallionID 2, HackneyLicenseID 3, PickupTimeID 4, DropoffTimeID 5)
    FROM 'https://nytaxiblob.blob.core.windows.net/2013/Trip2013'
    WITH
    (
        FILE_TYPE = 'CSV',
        FIELDTERMINATOR = '|',
        COMPRESSION = 'GZIP'
    );
    
  3. È possibile visualizzare in anteprima i dati e i valori assegnati alla IDENTITY colonna con una query semplice:

    SELECT TOP 10 * 
    FROM Trip;
    

    L'output include il valore generato automaticamente per la TripID colonna per ogni riga.

    Screenshot dei risultati della query che mostra una tabella con le prime 10 righe di un set di dati relativo alle corse dei taxi.

    Importante

    I valori potrebbero essere diversi da quelli osservati in questo articolo. IDENTITY le colonne producono valori casuali che sono sicuramente univoci, ma possono esserci gap nelle sequenze e i valori potrebbero non essere in ordine.

  4. È anche possibile usare INSERT INTO per inserire nuove righe nella tabella.

    INSERT INTO dbo.Trip
    VALUES (20251104, 3524, 28804, 51931, 52252);
    
  5. L'elenco di colonne può essere fornito con INSERT INTO, ma non è obbligatorio. Quando si specifica un elenco di colonne, specificare il nome di tutte le colonne per cui si forniscono i dati di input, ad eccezione della IDENTITY colonna:

    INSERT INTO dbo.Trip (DateID, MedallionID, HackneyLicenseID, PickupTimeID, DropoffTimeID)
    VALUES (20251104, 8410, 24939, 74609, 49583);
    
  6. È possibile esaminare le righe inserite con una query semplice:

    SELECT *
    FROM dbo.Trip
    WHERE DateID = 20251104;
    

Osservare i valori assegnati alle nuove righe:

Tabella con due righe e sei colonne che mostrano i dati relativi alle corse dei taxi.