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ässä artikkelissa kuvataan, miten SET IDENTITY_INSERT ja DBCC CHECKIDENT voidaan käyttää olemassa olevien identiteettiarvojen säilyttämiseen siirron aikana SQL Server, Azure SQL Database tai Azure Synapse Analytics ja varmistamaan referenttitietoisuus.
Keskeiset erot muihin alustoihin verrattuna
Ennen siirtymistä ymmärrä nämä erot toteutuksessa IDENTITY Fabric tietovarasto:
-
IDENTITYsarakkeet tukevat vain bigint-tietotyyppiä . -
SEEDJaINCREMENTparametreja ei tueta. Järjestelmä hallinnoi arvoja sisäisesti. - Arvot ovat taatusti ainutlaatuisia, mutta eivät välttämättä peräkkäin. Aukkoja voi syntyä hajautetun laskentaarkkitehtuurin vuoksi.
- Fabric tietovarasto ei valvo keskeisiä rajoituksia.
Muuttostrategia
Supportin IDENTITY_INSERT avulla voit siirtää identiteettiarvot suoraan Fabric tietovarasto tauluihin, jotka käyttävät IDENTITY sarakkeita:
- Luo kohdetaulut Fabric tietovarasto sarakkeilla
IDENTITY. - Käytä
SET IDENTITY_INSERT ONhistoriallisten tietojen lisäämiseen, joissa alkuperäiset identiteettiarvot säilyvät. - Käytä
DBCC CHECKIDENTtunnistealuettaRESEEDuudelleenkohdistamiseen siirron jälkeen. - Päivitä tarvittaessa vierasavainviitteitä.
Tämä lähestymistapa säilyttää alkuperäiset identiteettiarvot, säilyttää viiteellisen eheyden taulujen välillä ja mahdollistaa Fabric tietovarasto yksilöllisten arvojen generoinnin siirron jälkeen.
Esimerkki: Siirtäkää tauluja, joissa on IDENTITY-sarakkeet
Seuraava esimerkki siirtää taulun Orders lähdealustalta Fabric tietovarasto säilyttäen identiteetin arvot.
Vaihe 1: Luo kohdetaulu IDENTITY-sarakkeella
Luo kohdetaulu Fabric tietovarasto. Pääavain sarake käyttää IDENTITY:
CREATE TABLE dbo.Orders (
OrderID BIGINT IDENTITY,
OrderDate DATE,
CustomerID BIGINT,
TotalAmount DECIMAL(18, 2)
);
Vaihe 2: Siirrä data IDENTITY_INSERT
Käytä SET IDENTITY_INSERT historiallisten tietojen lisäämiseen alkuperäisillä identiteettiarvoilla. Tämä menetelmä säilyttää olemassa olevat ID:t, jotta taulujen väliset suhteet pysyvät ennallaan.
-- Migrate Orders with original IDs
SET IDENTITY_INSERT dbo.Orders ON;
INSERT INTO dbo.Orders (OrderID, OrderDate, CustomerID, TotalAmount)
VALUES (101, '2025-01-15', 1, 5000.00),
(102, '2025-02-20', 2, 3200.00),
(103, '2025-03-10', 1, 7800.00),
(104, '2025-04-05', 3, 1500.00);
SET IDENTITY_INSERT dbo.Orders OFF;
Suuremmille aineistoille voit käyttää COPY INTO seuraavilla IDENTITY_INSERTversioilla:
COPY INTO dbo.Orders (OrderID 1, OrderDate 2, CustomerID 3, TotalAmount 4)
FROM 'https://storage.blob.core.windows.net/migration/orders.csv'
WITH (
FILE_TYPE = 'CSV',
IDENTITY_INSERT = 'ON'
);
Vaihe 3: Uudelleensiemennä identiteettisarakkeet
Datan siirron jälkeen suorita DBCC CHECKIDENT jokaisessa taulukossa RESEED . Tämä operaatio skannaa kaikki käytetyt identiteettialueet ja säätää seuraavaa arvoa välttääkseen törmäykset siirrettyihin tietoihin:
DBCC CHECKIDENT('dbo.Orders', RESEED);
Vaihe 4: Varmista siirto ja testaa uudet insertit
Varmista, että siirretty data on ehjä ja että uudet insertit saavat automaattisesti generoituja arvoja, jotka eivät mene päällekkäin siirrettyjen arvojen kanssa:
-- Verify migrated data
SELECT * FROM dbo.Orders ORDER BY OrderID;
-- Insert a row that receives an automatically generated ID
INSERT INTO dbo.Orders (OrderDate, CustomerID, TotalAmount)
VALUES ('2025-05-01', 1, 2500.00);
-- Verify that new IDs don't overlap with migrated data
SELECT * FROM dbo.Orders ORDER BY OrderID;
Parhaat käytännöt
- Aina uudelleenkylväminen muuton jälkeen. Suorita
DBCC CHECKIDENT('table_name', RESEED)jokaisen taulun siirron jälkeen estääksesi identiteettiarvojen törmäykset. - Käytä COPY INTO -toimintoa suurille aineistoille. Suurten taulujen massasiirrossa
COPY INTOwithIDENTITY_INSERT ONtarjoaa paremman suorituskyvyn kuin rivikohtaisetINSERTlauseet. - Validoi referenttiaalinen eheys. Siirron jälkeen varmista, että vieraiden avainten arvot lapsitauluissa viittaavat vanhempien taulujen kelvollisiin riveihin.