Del via


Brug IDENTITY-kolonner til at oprette surrogatnøgler i Fabric Data Warehouse

Gælder for:✅ Warehouse i Microsoft Fabric

Denne vejledning forklarer, hvordan man bruger IDENTITY kolonner i Fabric Data Warehouse til effektivt at oprette og administrere surrogatnøgler.

Prerequisites

  • Have adgang til en lagervare i et arbejdsområde med bidragyder eller højere tilladelser.
  • Vælg dit forespørgselsværktøj. Dette selvstudium indeholder SQL-forespørgselseditoren på Microsoft Fabric-portalen, men du kan bruge et hvilket som helst T-SQL-forespørgselsværktøj.
  • Grundlæggende forståelse af T-SQL.

Hvad er en IDENTITET-kolonne?

En kolonne er en numerisk kolonne, der automatisk genererer IDENTITY unikke værdier for nye rækker. Dette gør den ideel til at implementere surrogatnøgler, da det sikrer, at hver række får en unik identifikator uden manuel indtastning.

Opret en IDENTITET-kolonne

For at definere en IDENTITY kolonne, angiv nøgleordet IDENTITY i kolonnedefinitionen af CREATE TABLE T-SQL-syntaksen:

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

Notat

I Fabric Data Warehouse er bigint den eneste understøttede datatype for IDENTITY kolonner. Derudover seed understøttes og increment egenskaberne ved T-SQL IDENTITY ikke. For mere information, se IDENTITY-kolonnerne og IDENTITY (Transact-SQL). For mere information om oprettelse af tabeller, se Opret tabeller i Warehouse i Microsoft Fabric.

Opret en tabel med en IDENTITY-kolonne

I denne vejledning vil vi lave en enklere version af Trip tabellen ud fra NY Taxi open dataset og tilføje en ny TripIDIDENTITY kolonne til den. Hver gang en ny række indsættes, TripID tildeles en ny værdi, der er unik i tabellen.

  1. Definér en tabel med en IDENTITY kolonne:

     CREATE TABLE dbo.Trip
     (
         TripID BIGINT IDENTITY,
         DateID int,
         MedallionID int,
         HackneyLicenseID int,
         PickupTimeID int,
         DropoffTimeID int
     );
    
  2. Dernæst bruger COPY INTO vi det til at indlæse nogle data i denne tabel. Når du bruger COPY INTO med kolonner IDENTITY , skal du angive kolonnelisten, som mapper til kolonnerne i kildedataene.

    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. Vi kan forhåndsvise dataene og de værdier, der er tildelt kolonnen IDENTITY , med en simpel forespørgsel:

    SELECT TOP 10 * 
    FROM Trip;
    

    Outputtet inkluderer den automatisk genererede værdi for kolonnen TripID for hver række.

    Skærmbillede af forespørgselsresultaterne, der viser en tabel med de første 10 rækker af et taxa-datasæt.

    Important

    Dine værdier kan være anderledes end dem, der er observeret i denne artikel. IDENTITY Kolonner producerer tilfældige værdier, der garanteret er unikke, men der kan være huller i sekvenserne, og værdierne er måske ikke i rækkefølge.

  4. Du kan også bruge INSERT INTO den til at indtaste nye rækker i din tabel.

    INSERT INTO dbo.Trip
    VALUES (20251104, 3524, 28804, 51931, 52252);
    
  5. Kolonnelisten kan leveres med INSERT INTO, men det er ikke påkrævet. Når du leverer en kolonneliste, skal du angive navnet på alle kolonner, som du leverer inputdata for, undtagen kolonnen IDENTITY :

    INSERT INTO dbo.Trip (DateID, MedallionID, HackneyLicenseID, PickupTimeID, DropoffTimeID)
    VALUES (20251104, 8410, 24939, 74609, 49583);
    
  6. Vi kan gennemgå de indsatte rækker med en simpel forespørgsel:

    SELECT *
    FROM dbo.Trip
    WHERE DateID = 20251104;
    

Observer værdierne, der er tildelt de nye rækker:

En tabel med to rækker og seks kolonner, der viser taxa-rejsedata.