Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:✅ Warehouse in Microsoft Fabric
Bu eğitim, Fabric Data Warehouse'de IDENTITY sütunlarının vekil anahtarlar oluşturmak ve yönetmek için nasıl kullanılacağını açıklar. Kimlik sütunlarına sahip tabloları nasıl oluşturacağınızı, nasıl veri ekleyeceğinizi, IDENTITY_INSERT ile nasıl açık değerler ekleyeceğinizi ve kimlik aralığını DBCC CHECKIDENT ile nasıl yeniden tohumlayacağınızı öğrenirsiniz.
Önkoşullar
- Katılımcı veya daha yüksek izinlere sahip bir çalışma alanındaki Warehouse öğesine erişim.
- Bir sorgulama aracı. Bu eğitim, Microsoft Fabric portalındaki SQL sorgu düzenleyicisini kullanır, ancak herhangi bir T-SQL sorgulama aracını da kullanabilirsiniz.
- T-SQL'in temel bir anlayışı.
IDENTITY sütunu nedir?
Sütun IDENTITY , yeni satırlar için otomatik olarak benzersiz değerler oluşturan sayısal bir sütundur. Bu davranış, her satırın manuel girinti olmadan benzersiz bir tanımlayıcı alması nedeniyle vekil anahtarların uygulanması için ideal kılar.
IDENTITY sütunu oluşturun
Bir IDENTITY sütun tanımlamak için, T-SQL sözdiziminin sütun tanımında CREATE TABLE anahtar kelime belirtinIDENTITY:
CREATE TABLE { warehouse_name.schema_name.table_name | schema_name.table_name | table_name } (
[column_name] BIGINT IDENTITY,
[ ,... n ],
-- Other columns here
);
IDENTITY sütunuyla tablo oluşturma
Bu eğitimde, NY Taxi açık veri setinden tablonun daha basit bir versiyonunu Trip oluşturup bir TripIDIDENTITY sütun eklersiniz. Her yeni satır, tabloda benzersiz bir TripID değer alır.
Bir
IDENTITYsütunlu tablo tanımlayın.CREATE TABLE dbo.Trip ( TripID bigint IDENTITY, tpepPickupDateTime datetime2(6), tpepDropoffDateTime datetime2(6), passengerCount int, tripDistance float, fareAmount float, totalAmount float );Verileri tabloya aktarmak için kullanılır
COPY INTO.IDENTITYile birCOPY INTOsütunu kullandığınızda, sütun listesini belirtin ve bunu kaynak verideki sütunlara eşleyin.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');Verileri ve sütuna
IDENTITYatanan değerleri önizleme:SELECT TOP 10 * FROM Trip;Çıktı, her satır için otomatik olarak oluşturulan
TripIDdeğeri içerir.Önemli
Değerleriniz bu makaledeki değerlerden farklı olabilir.
IDENTITYSütunlar, benzersiz garanti edilen değerler üretir, ancak değerler mutlaka ardışık veya sıralı değildir ve boşluklar oluşabilir.Yeni satırları içeri aktarmak için
INSERT INTOkullanın:INSERT INTO dbo.Trip VALUES ('2026-01-01T00:00:00', '2013-01-01T00:12:00', 1, 2.4, 10.5, 13.0);Sütun listesi,
INSERT INTOile isteğe bağlıdır. Bir veri verdiğinizde, giriş verisi sağladığınız tüm sütunların isimlerini belirtin, sadece sütunIDENTITYhariç: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);Eklenen satırları inceleyin:
SELECT * FROM dbo.Trip WHERE CAST(tpepPickupDateTime AS date) = '2026-01-01';Yeni satırlara atanan değerleri gözlemleyin:
IDENTITY_INSERT ile açık değerler ekleme
Veri taşınmasında, sentinel değerlerini doldururken veya yedekten veri geri getirirken kimlik sütununa belirli değerler eklemeniz gerekebilir. Bu eklemeleri etkinleştirmek için SET IDENTITY_INSERT kullanın.
Bu bölümde, bir boyut tablosu oluşturur ve iyi bilinen anahtar değerlerine sahip sentinel satırlar eklemek için IDENTITY_INSERT kullanırsınız.
Bir
IDENTITYsütunlu boyut tablosu oluşturun:CREATE TABLE dbo.DimCustomer ( CustomerKey BIGINT IDENTITY, CustomerName VARCHAR(100), CustomerType VARCHAR(20) );Düzenli sıralar ekleyin. Kimlik değerleri otomatik olarak üretilir:
INSERT INTO dbo.DimCustomer (CustomerName, CustomerType) VALUES ('Contoso Ltd', 'Enterprise'), ('Fabrikam Inc', 'SMB'), ('Northwind Traders', 'Enterprise');Sentinel değerlerini eklemeyi etkinleştir
IDENTITY_INSERT.IDENTITY_INSERT,ONolduğunda, kimlik sütununu içeren bir sütun listesi sağlayın: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;Değerleri açıkça ekledikten sonra, gelecekte otomatik olarak oluşturulacak değerlerin eklenen değerlerle çakışmamasını sağlamak için kimlik sütununu
DBCC CHECKIDENTile yeniden tohumlayın:DBCC CHECKIDENT('dbo.DimCustomer', RESEED);Sentinel sıralarının otomatik olarak oluşturulan sıralarla birlikte göründüğünü doğrulayın:
SELECT * FROM dbo.DimCustomer ORDER BY CustomerKey;Bir satır ekleyin ve otomatik olarak oluşturulan değerin çakışmadığını doğrulayın:
INSERT INTO dbo.DimCustomer (CustomerName, CustomerType) VALUES ('Adventure Works', 'Enterprise'); SELECT * FROM dbo.DimCustomer ORDER BY CustomerKey;
Öğretici kaynaklarını temizleme
İsteğe göre, bu eğitim sırasında oluşturulan tabloları bırakabilirsiniz:
DROP TABLE IF EXISTS dbo.Trip;
DROP TABLE IF EXISTS dbo.DimCustomer;
DROP TABLE IF EXISTS dbo.DimProduct;