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.
Tip
Microsoft Fabric Data Warehouse geleceğe hazır mimariye, yerleşik yapay zekaya ve yeni özelliklere sahip data lake foundation üzerinde kurumsal ölçekli ilişkisel bir ambardır. Veri ambarı konusunda yeniyseniz Fabric Data Warehouse ile başlayın. Mevcut özel SQL havuzu iş yükleri, veri bilimi, gerçek zamanlı analiz ve raporlama genelinde yeni özelliklere erişmek için Fabric yükseltilebilir.
Ayrılmış SQL havuzundaki birincil anahtar, yabancı anahtar ve benzersiz anahtar gibi tablo kısıtlamaları hakkında bilgi edinin.
Tablodaki kısıtlamalar
Ayrılmış SQL havuzu şu tablo kısıtlamalarını destekler:
- Birincil Anahtar yalnızca, YÖNDEKSİZ ve ZORLANMAMIŞ birlikte kullanıldığında desteklenir.
- UNIQUE kısıtlaması yalnızca NOT ENFORCED kullanıldığında desteklenir.
Söz dizimi için ALTER TABLE ve CREATE TABLE'a bakın.
YABANCı ANAHTAR kısıtlaması ayrılmış SQL havuzunda desteklenmez.
Açıklamalar
Birincil anahtara ve/veya benzersiz anahtara sahip olmak, ayrılmış SQL havuzu altyapısının sorgu için en uygun yürütme planını oluşturmasına olanak tanır. Birincil anahtar sütunundaki veya benzersiz bir kısıtlama sütunundaki tüm değerler benzersiz olmalıdır.
Önemli
Ayrılmış SQL havuzunda birincil anahtar veya benzersiz kısıtlamaya sahip bir tablo oluşturduktan sonra, kullanıcıların bu sütunlardaki tüm değerlerin benzersiz olduğundan emin olması gerekir. Bunun ihlali sorgunun yanlış sonuç döndürmesine neden olabilir.
Bu örnekte, birincil anahtar veya benzersiz kısıtlama sütunu yinelenen değerler içeriyorsa sorgunun nasıl yanlış sonuç döndürebileceği gösterilir.
-- Create table t1
CREATE TABLE t1 (a1 INT NOT NULL, b1 INT) WITH (DISTRIBUTION = ROUND_ROBIN)
-- Insert values to table t1 with duplicate values in column a1.
INSERT INTO t1 VALUES (1, 100)
INSERT INTO t1 VALUES (1, 1000)
INSERT INTO t1 VALUES (2, 200)
INSERT INTO t1 VALUES (3, 300)
INSERT INTO t1 VALUES (4, 400)
-- Run this query. No primary key or unique constraint. 4 rows returned. Correct result.
SELECT a1, COUNT(*) AS total FROM t1 GROUP BY a1
/*
a1 total
----------- -----------
1 2
2 1
3 1
4 1
(4 rows affected)
*/
-- Add unique constraint
ALTER TABLE t1 ADD CONSTRAINT unique_t1_a1 unique (a1) NOT ENFORCED
-- Re-run this query. 5 rows returned. Incorrect result.
SELECT a1, count(*) AS total FROM t1 GROUP BY a1
/*
a1 total
----------- -----------
2 1
4 1
1 1
3 1
1 1
(5 rows affected)
*/
-- Drop unique constraint.
ALTER TABLE t1 DROP CONSTRAINT unique_t1_a1
-- Add primary key constraint
ALTER TABLE t1 add CONSTRAINT PK_t1_a1 PRIMARY KEY NONCLUSTERED (a1) NOT ENFORCED
-- Re-run this query. 5 rows returned. Incorrect result.
SELECT a1, COUNT(*) AS total FROM t1 GROUP BY a1
/*
a1 total
----------- -----------
2 1
4 1
1 1
3 1
1 1
(5 rows affected)
*/
-- Manually fix the duplicate values in a1
UPDATE t1 SET a1 = 0 WHERE b1 = 1000
-- Verify no duplicate values in column a1
SELECT * FROM t1
/*
a1 b1
----------- -----------
2 200
3 300
4 400
0 1000
1 100
(5 rows affected)
*/
-- Add unique constraint
ALTER TABLE t1 add CONSTRAINT unique_t1_a1 UNIQUE (a1) NOT ENFORCED
-- Re-run this query. 5 rows returned. Correct result.
SELECT a1, COUNT(*) as total FROM t1 GROUP BY a1
/*
a1 total
----------- -----------
2 1
3 1
4 1
0 1
1 1
(5 rows affected)
*/
-- Drop unique constraint.
ALTER TABLE t1 DROP CONSTRAINT unique_t1_a1
-- Add primary key constraint
ALTER TABLE t1 ADD CONSTRAINT PK_t1_a1 PRIMARY KEY NONCLUSTERED (a1) NOT ENFORCED
-- Re-run this query. 5 rows returned. Correct result.
SELECT a1, COUNT(*) AS total FROM t1 GROUP BY a1
/*
a1 total
----------- -----------
2 1
3 1
4 1
0 1
1 1
(5 rows affected)
*/
Örnekler
Birincil anahtarla ayrılmış bir SQL havuzu tablosu oluşturun:
CREATE TABLE mytable (c1 INT PRIMARY KEY NONCLUSTERED NOT ENFORCED, c2 INT);
Benzersiz bir kısıtlamayla ayrılmış bir SQL havuzu tablosu oluşturun:
CREATE TABLE t6 (c1 INT UNIQUE NOT ENFORCED, c2 INT);
İlgili içerik
Ayrılmış SQL havuzunuz için tabloları oluşturduktan sonra, sonraki adım tabloya veri yüklemektir. Yükleme öğreticisi için bkz . Ayrılmış SQL havuzuna veri yükleme.