Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
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.
Definér en tabel med en
IDENTITYkolonne:CREATE TABLE dbo.Trip ( TripID BIGINT IDENTITY, DateID int, MedallionID int, HackneyLicenseID int, PickupTimeID int, DropoffTimeID int );Dernæst bruger
COPY INTOvi det til at indlæse nogle data i denne tabel. Når du brugerCOPY INTOmed kolonnerIDENTITY, 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' );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
TripIDfor hver række.Important
Dine værdier kan være anderledes end dem, der er observeret i denne artikel.
IDENTITYKolonner 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.Du kan også bruge
INSERT INTOden til at indtaste nye rækker i din tabel.INSERT INTO dbo.Trip VALUES (20251104, 3524, 28804, 51931, 52252);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 kolonnenIDENTITY:INSERT INTO dbo.Trip (DateID, MedallionID, HackneyLicenseID, PickupTimeID, DropoffTimeID) VALUES (20251104, 8410, 24939, 74609, 49583);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: