Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:✅ Magazyn w systemie Microsoft Fabric
Ten samouczek wyjaśnia, jak używać kolumn IDENTITY w Fabric Data Warehouse do tworzenia i zarządzania kluczami zastępczymi. Dowiesz się, jak tworzyć tabele z kolumnami tożsamościowymi, wstawiać dane, wstawiać jawne wartości przy użyciu IDENTITY_INSERT oraz ponownie ustawiać zakres wartości tożsamości za pomocą DBCC CHECKIDENT.
Wymagania wstępne
- Dostęp do przedmiotu magazynowego w przestrzeni roboczej z uprawnieniami Contributor lub wyższymi.
- Narzędzie do zapytań. Ten samouczek korzysta z edytora zapytań SQL w portalu Microsoft Fabric, ale możesz użyć dowolnego narzędzia do zapytań T-SQL.
- Podstawowa wiedza o T-SQL.
Co to jest kolumna IDENTITY?
Kolumna IDENTITY jest kolumną liczbową, która automatycznie generuje unikatowe wartości dla nowych wierszy. To zachowanie sprawia, że jest idealny do implementacji kluczy zastępczych, ponieważ każdy wiersz otrzymuje unikalny identyfikator bez konieczności ręcznego wprowadzania.
Utwórz kolumnę IDENTITY
Aby zdefiniować kolumnę IDENTITY, określ słowo kluczowe IDENTITY w definicji kolumny w składni CREATE TABLE T-SQL:
CREATE TABLE { warehouse_name.schema_name.table_name | schema_name.table_name | table_name } (
[column_name] BIGINT IDENTITY,
[ ,... n ],
-- Other columns here
);
Tworzenie tabeli z kolumną IDENTITY
W tym samouczku tworzysz prostszą wersję tabeli Trip z otwartego zestawu danych NY Taxi i dodajesz kolumnę TripIDIDENTITY. Każdy nowy wiersz otrzymuje wartość TripID, która jest unikalna w tabeli.
Zdefiniuj tabelę z kolumną
IDENTITY:CREATE TABLE dbo.Trip ( TripID bigint IDENTITY, tpepPickupDateTime datetime2(6), tpepDropoffDateTime datetime2(6), passengerCount int, tripDistance float, fareAmount float, totalAmount float );Użyj
COPY INTOdo pobierania danych do tabeli. Gdy używaszCOPY INTOz kolumnąIDENTITY, podaj listę kolumn i przypisz ją do kolumn w danych źródłowych.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');Podgląd danych i wartości przypisanych do kolumny
IDENTITY:SELECT TOP 10 * FROM Trip;Wynik zawiera automatycznie wygenerowaną
TripIDwartość dla każdego wiersza.Ważne
Twoje wartości mogą różnić się od tych z tego artykułu.
IDENTITYKolumny generują wartości gwarantowane jako unikalne, ale wartości te niekoniecznie są sekwencyjne czy uporządkowane, a luki mogą występować.Użyj
INSERT INTO, aby zaimportować nowe wiersze:INSERT INTO dbo.Trip VALUES ('2026-01-01T00:00:00', '2013-01-01T00:12:00', 1, 2.4, 10.5, 13.0);Lista kolumn jest opcjonalna z
INSERT INTO. Gdy ją podajesz, określ nazwy wszystkich kolumn, dla których podajesz dane wejściowe, z wyjątkiem kolumnyIDENTITY: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);Przejrzyj wstawione wiersze:
SELECT * FROM dbo.Trip WHERE CAST(tpepPickupDateTime AS date) = '2026-01-01';Obserwuj wartości przypisane do nowych wierszy:
Wstawianie wartości jawnych przy użyciu IDENTITY_INSERT
Może być konieczne wprowadzenie konkretnych wartości do kolumny tożsamości podczas migracji danych, podczas wypełniania wartości sentinel lub przywracania danych z kopii zapasowej. Użyj SET IDENTITY_INSERT , aby włączyć te inserty.
W tej sekcji tworzysz tabelę wymiaru i używasz elementu IDENTITY_INSERT, aby dodać wiersze wartownicze z dobrze znanymi wartościami kluczy.
Stwórz tabelę wymiarową z kolumną
IDENTITY:CREATE TABLE dbo.DimCustomer ( CustomerKey BIGINT IDENTITY, CustomerName VARCHAR(100), CustomerType VARCHAR(20) );Wstaw regularne wiersze. Wartości tożsamości są generowane automatycznie:
INSERT INTO dbo.DimCustomer (CustomerName, CustomerType) VALUES ('Contoso Ltd', 'Enterprise'), ('Fabrikam Inc', 'SMB'), ('Northwind Traders', 'Enterprise');Włącz
IDENTITY_INSERTdodawanie wartości sentinelowych. GdyIDENTITY_INSERTma wartośćON, podaj listę kolumn zawierającą kolumnę identyfikacyjną: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;Po wstawieniu wartości jawnych, ponownie zasiedź kolumnę tożsamości z ,
DBCC CHECKIDENTaby upewnić się, że przyszłe automatycznie generowane wartości nie kolidują z wstawionymi wartościami:DBCC CHECKIDENT('dbo.DimCustomer', RESEED);Sprawdź, czy wiersze sentinel pojawiają się obok automatycznie generowanych wierszy:
SELECT * FROM dbo.DimCustomer ORDER BY CustomerKey;Wstaw wiersz i popewnij, że automatycznie generowana wartość nie jest konfliktowa:
INSERT INTO dbo.DimCustomer (CustomerName, CustomerType) VALUES ('Adventure Works', 'Enterprise'); SELECT * FROM dbo.DimCustomer ORDER BY CustomerKey;
Uporządkuj zasoby samouczków
Opcjonalnie usuń tabele utworzone podczas tego samouczka:
DROP TABLE IF EXISTS dbo.Trip;
DROP TABLE IF EXISTS dbo.DimCustomer;
DROP TABLE IF EXISTS dbo.DimProduct;