Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:✅ Raktár a Microsoft Fabricben
Ez a cikk bemutatja, hogyan használható a SET IDENTITY_INSERT és a DBCC CHECKIDENT a meglévő identity értékek megőrzésére az SQL Serverből, Azure SQL Database-ből vagy Azure Synapse Analyticsből történő migráció során, valamint a referenciális integritás biztosítására.
Főbb különbségek más platformokhoz képest
A migráció előtt ismerje meg ezeket a különbségeket a Fabric Data Warehouse IDENTITY-beli implementációjában:
-
IDENTITYAz oszlopok csak a bigint adattípust támogatják. -
SEEDÉsINCREMENTa paraméterek nem támogatottak. A rendszer belső értékeket kezel. - Az értékek garantáltan egyediek, de nem feltétlenül egymás után. Rések előfordulhatnak az elosztott számítási architektúra miatt.
- A Fabric Data Warehouse nem kényszeríti ki a kulcskorlátozásokat.
Áttelepítési stratégia
A IDENTITY_INSERT támogatás használatával közvetlenül áttelepítheti az identitásértékeket a IDENTITY oszlopokat használó Fabric Data Warehouse-táblákba:
- Hozz létre céltáblákat Fabric Data Warehouse-ben oszlopokkal
IDENTITY. - A(z)
SET IDENTITY_INSERT ONhasználatával szúrhat be korábbi adatokat úgy, hogy az eredeti identitásértékek megmaradnak. - Futtasd a
DBCC CHECKIDENTparancsot aRESEEDkapcsolóval a migrálás után, hogy újraigazítsa az identitástartományt. - Ha szükséges, frissítsd a külföldi kulcshivatkozásokat.
Ez a megközelítés megőrzi az eredeti identitásértékeket, megőrzi a referenciális integritást a táblák között, és lehetővé teszi Fabric Data Warehouse számára, hogy migráció után folytatják az egyedi értékek generálását.
Példa: IDENTITY oszlopokkal rendelkező táblák migrálása
A következő példa egy Orders tábla átvitelét egy forrásplatformról Fabric Data Warehouse-re áthelyezi, miközben megőrzi az identitásértékeket.
1. lépés: Létrehozz egy céltáblát IDENTITY oszloppal
Hozd létre a céltáblát Fabric Data Warehouse-ben. A fő kulcsoszlop a következőket használja IDENTITY:
CREATE TABLE dbo.Orders (
OrderID BIGINT IDENTITY,
OrderDate DATE,
CustomerID BIGINT,
TotalAmount DECIMAL(18, 2)
);
2. lépés: Adatok migrálása az IDENTITY_INSERT használatával
Használd SET IDENTITY_INSERT a történelmi adatok eredeti identitásértékekkel való beillesztésére. Ez a módszer megőrzi a meglévő azonosítókat, így a táblák közötti kapcsolatok érintetlenek maradnak.
-- 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;
Nagyobb adathalmazok esetén használhatja a(z) COPY INTO elemet a(z) IDENTITY_INSERT elemmel:
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'
);
3. lépés: Újravetessék az identitásoszlopokat
Az adatok migrálása után futtasd a DBCC CHECKIDENT parancsot a RESEED kapcsolóval minden táblán. Ez a művelet minden használt identitástartományt átvizsgál, és a következő értéket módosítja, hogy elkerülje az átvándorolt adatokkal való ütközéseket:
DBCC CHECKIDENT('dbo.Orders', RESEED);
4. lépés: Ellenőrizd a migrációt és teszteld az új betéteket
Győződjön meg róla, hogy a migrált adatok érintetlenek, és hogy az új beillesztések automatikusan kapnak olyan értékeket, amelyek nem fedik át a migrált értékeket:
-- 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;
Bevált gyakorlatok
- Mindig végezzen újrainicializálást a migráció után. Minden táblamigráció után futtasd
DBCC CHECKIDENT('table_name', RESEED)el, hogy elkerüld az identitásértékek ütközését. - Használd a COPY INTO funkciót nagy adathalmazokhoz. Nagy táblák tömeges migrálásához a
COPY INTOés aIDENTITY_INSERT ONjobb teljesítményt nyújt, mint a soronkéntiINSERTutasítások. - Ellenőrizze a hivatkozási integritást. A migráció után ellenőrizzük, hogy a gyermektáblák külföldi kulcsértékei hivatkoznak az parent táblák érvényes soraira.