Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Koskee:✅ Microsoft Fabric -varasto
Tämä opas selittää, miten IDENTITY-sarakkeita käytetään Fabric tietovarasto sijaisavainten luomiseen ja hallintaan. Opit, miten luoda tauluja identiteettisarakkeilla, lisätä dataa, lisätä eksplisiittisiä arvoja , IDENTITY_INSERTja uudelleenkylvää identiteettialue .DBCC CHECKIDENT
Ennakkovaatimukset
- Pääsy Varasto-kohteeseen työtilassa, jossa on Contributor- tai korkeammat oikeudet.
- Kyselytyökalu. Tämä opas käyttää Microsoft Fabric -portaalin SQL-kyselyeditoria, mutta voit käyttää mitä tahansa T-SQL-kyselytyökalua.
- Perusymmärrys T-SQL:stä.
Mikä on IDENTITY-sarakke?
Sarake IDENTITY on numeerinen sarake, joka automaattisesti tuottaa ainutlaatuisia arvoja uusille riveille. Tämä ominaisuus tekee siitä ihanteellisen sijaisavainten toteuttamiseen, koska jokainen rivi saa yksilöllisen tunnisteen ilman manuaalista syöttöä.
Luo IDENTITY-sarake
Sarakkeen määrittämiseksi IDENTITY määrittele IDENTITY avainsana T-SQL-syntaksin sarakemääritelmässä CREATE TABLE :
CREATE TABLE { warehouse_name.schema_name.table_name | schema_name.table_name | table_name } (
[column_name] BIGINT IDENTITY,
[ ,... n ],
-- Other columns here
);
Luo taulu, jossa on IDENTITY-sarake
Tässä opetusohjelmassa luot yksinkertaisemman version taulukosta TripNY Taxi avoimesta aineistosta ja lisäät sarakkeen TripIDIDENTITY . Jokainen uusi rivi saa taulukossa ainutlaatuisen TripID arvon.
Määrittele taulukko, jossa on sarakke
IDENTITY:CREATE TABLE dbo.Trip ( TripID bigint IDENTITY, tpepPickupDateTime datetime2(6), tpepDropoffDateTime datetime2(6), passengerCount int, tripDistance float, fareAmount float, totalAmount float );Käytä
COPY INTOdatan vastaanottamiseen taulukkoon. Kun käytätCOPY INTOsarakkeenIDENTITYkanssa, anna sarakkelista ja yhdistä se lähdedatan sarakkeisiin.COPY INTO dbo.Trip (tpepPickupDateTime, tpepDropoffDateTime, passengerCount, tripDistance, fareAmount, totalAmount) FROM 'https://azureopendatastorage.blob.core.windows.net/nyctlc/yellow/puYear=2013/puMonth=1/*.parquet' WITH( FILE_TYPE = 'PARQUET');Esitarkastele
IDENTITYdataa ja sarakkeelle annettuja arvoja:SELECT TOP 10 * FROM Trip;Tuloste sisältää automaattisesti luodun
TripIDarvon jokaiselle riville.Tärkeää
Arvosi voivat poiketa tämän artikkelin arvoista.
IDENTITYSarakkeet tuottavat arvoja, jotka ovat taatusti yksikäsitteisiä, mutta arvot eivät välttämättä ole peräkkäisiä tai järjestettyjä, ja aukkoja voi syntyä.Käytä
INSERT INTOuusien rivien vastaanottamiseen:INSERT INTO dbo.Trip VALUES ('2026-01-01T00:00:00', '2013-01-01T00:12:00', 1, 2.4, 10.5, 13.0);Sarakkelista on valinnainen, kun
INSERT INTO. Kun annat sellaisen, määritä kaikkien sarakkeiden nimet, joille syötät tietoja, paitsi sarakkeenIDENTITY:INSERT INTO dbo.Trip (tpepPickupDateTime, tpepDropoffDateTime, passengerCount, tripDistance, fareAmount, totalAmount) VALUES ('2026-01-01T08:15:00', '2013-01-01T08:42:00', 2, 6.8, 24.5, 30.0);Tarkista lisätyt rivit:
SELECT * FROM dbo.Trip WHERE CAST(tpepPickupDateTime AS date) = '2026-01-01';Tarkkaile uusille riveille annettuja arvoja:
Lisää eksplisiittisiä arvoja IDENTITY_INSERT
Saatat joutua lisäämään tiettyjä arvoja identiteettisarakkeeseen datan siirron aikana, sentinel-arvoja täyttäessä tai varmuuskopiosta palautettaessa dataa. Käytä SET IDENTITY_INSERT näiden inserttien käyttöönottoon.
Tässä osiossa luot dimensiotaulun ja lisäät IDENTITY_INSERT sentinel-rivejä, joilla on tunnettuja avainarvoja.
Luo dimensiotaulu sarakkeella
IDENTITY:CREATE TABLE dbo.DimCustomer ( CustomerKey BIGINT IDENTITY, CustomerName VARCHAR(100), CustomerType VARCHAR(20) );Lisää säännöllisiä rivejä. Identiteettiarvot generoidaan automaattisesti:
INSERT INTO dbo.DimCustomer (CustomerName, CustomerType) VALUES ('Contoso Ltd', 'Enterprise'), ('Fabrikam Inc', 'SMB'), ('Northwind Traders', 'Enterprise');Ota käyttöön
IDENTITY_INSERTsentinel-arvojen lisääminen. KunIDENTITY_INSERTonON, anna sarakkeelista, joka sisältää identiteettisarakkeen:SET IDENTITY_INSERT dbo.DimCustomer ON; INSERT INTO dbo.DimCustomer (CustomerKey, CustomerName, CustomerType) VALUES (-1, 'Unknown', 'Sentinel'), (-2, 'Not Applicable', 'Sentinel'); SET IDENTITY_INSERT dbo.DimCustomer OFF;Kun olet lisännyt eksplisiittisiä arvoja, uudelleensiemennä identiteettisarakkee varmistaaksesi
DBCC CHECKIDENT, etteivät tulevat automaattisesti generoidut arvot törmää lisättyihin arvoihin:DBCC CHECKIDENT('dbo.DimCustomer', RESEED);Varmista, että sentinel-rivit näkyvät automaattisesti luotujen rivien rinnalla:
SELECT * FROM dbo.DimCustomer ORDER BY CustomerKey;Lisää rivi ja varmista, ettei automaattisesti luotu arvo ole ristiriidassa:
INSERT INTO dbo.DimCustomer (CustomerName, CustomerType) VALUES ('Adventure Works', 'Enterprise'); SELECT * FROM dbo.DimCustomer ORDER BY CustomerKey;
Siivoa opetusmateriaaleja
Voit halutessasi pudottaa tämän tutoriaalin aikana luodut taulukot:
DROP TABLE IF EXISTS dbo.Trip;
DROP TABLE IF EXISTS dbo.DimCustomer;
DROP TABLE IF EXISTS dbo.DimProduct;