Toplu alma işlemi tarafından denetimini denetleme kısıtlaması
Toplu, veri alma, toplu alma işlemiyle CHECK kısıtlamaları zorunlu olup olmadığını denetleyebilirsiniz.C kısıtlama geçerli değerlerini tanımlamak için bir sütun koymak için bir iş kuralı olur; örneğin, telefon Uzantıları'nı içeren bir sütun için bir kısıtlama gerektirebilir biçiminde####.Defining and checking constraints are the standard mechanism for enforcing data integrity.Microsoft recommends that normally you use constraint checking during an incremental bulk import.
Bazen, kısıtlamaları yoksaymak isteyebilirsiniz.Giriş verileri kısıtlamalarını ihlal eden satırları içeriyorsa bir örnek senaryodur.Kısıtlamaları göz ardı ediliyor, verileri yüklemek ve daha sonra kullanabilirsiniz. Transact-SQL verileri temizlemeye deyimleri'ı tıklatın.
Not
Bir toplu alma işlemi sırasında kısıtlamaları yoksayarsanız, varolan kısıtlamalarını ihlal eden veri içine eklenebilir tablo.Bu nedenle, kısıtlama tablo olarak işaretlenmiş is_not_trusted in the sys.CHECK_CONSTRAINTS (daha fazla bilgi için bkz: kataloğunu görüntülemesys.CHECK_CONSTRAINTS (Transact-SQL)). Herhangi bir aşamada, tablonun tamamını kısıtlamalar denetlemeniz gerekir.
Toplu alma işleminin önce boş olmayan bir tablo ise, kısıtlama revalidating maliyetini CHECK kısıtlamaları, artımlı verilere uygulamadan maliyetini aşabilir.Sorunlu verileri aldıktan sonra kullanmanız gerekir Transact-SQL alınan verileri temizlemek için .
Important Note: |
---|
Kısıtlamalarını devre dışı bırakıldığında, kilit bir şemada değişiklik meta veriler güncelleştirmek için alınmış.Diğer (örneğin, bir çevrimiçi Dizin Oluþturma) komutları veya işlemleri etkileyebilir.Hedef erişme gibi bir anlık görüntü yalıtım hareket tablo eşzamanlı DDL değişikliklerinden dolayı başarısız olabilir. |
Sınırlamalar hakkında daha fazla bilgi için bkz: Kısıtlamaları.
Toplu alma işlemi sırasında işlem için kullanılan komut denetleme kısıtlaması davranış bağlıdır.Varsayılan olarak, Kullanımıbcp komut ve BULK INSERT deyim kısıtlamaları yoksayın.Buna ek olarak, INSERT için...SELECT * FROM OPENROWSET(BULK...) deyim kısıtlamaları denetlemek için varsayılandır.
Aşağıdaki tablo toplu alma komutları'nın varsayılan davranışını denetleme kısıtlaması özetler.
Komutu |
Varsayılan davranışı |
---|---|
Kullanımıbcp |
Kısıtlamalar Yoksay |
TOPLU EKLEME |
Kısıtlamalar Yoksay |
EKLE...SEÇİN * openrowset(bulk...) GELEN |
Kısıtlamalarını denetleyin. |
Toplu alma komutları kısıtlamaları nasıl işlendiğini, aşağıdaki bölümlerde açıklandığı gibi değiştirmenize olanak veren bir niteleyiciyi sağlar.
Kısıtlama Kullanımıbcp veya BULK INSERT denetleniyor.
Varsayılan olarak, kısıtlamaları tarafından gerçekleştirilen bir toplu alma işlemi sırasında dikkate alınmaz Kullanımıbcp komut veya BULK INSERT deyim.
The bcp command and BULK INSERT deyim allow you to specify that constraints are to be enforced during a bulk-import operation.Toplu alma işlemini yavaşlatır sınırlamalarını zorlama ancak eklenen verilerin tümünü değil ihlal, varolan tüm kısıtlamalar sağlar.Aşağıdaki tabloda, bir toplu alma işlemi sırasında zorlama kısıtlamaları belirtmek için kullanabileceğiniz niteleyicileri özetler.
Komutu |
Niteleyici |
Niteleyici türü |
---|---|---|
Kullanımıbcp |
-h"CHECK_CONSTRAINTS" |
Ipucu |
TOPLU EKLEME |
check_constraints |
Bağımsız değişken |
Daha fazla bilgi için bkz: Kullanımıbcp yardımcı programı ve BULK INSERT (Transact-SQL).
INSERT, kısıtlamaları göz ardı ediliyor...SEÇİN * openrowset(bulk...) GELEN
Varsayılan olarak, INSERT CHECK kısıtlamaları, ancak INSERT denetler...SELECT * FROM OPENROWSET(BULK...) deyim CHECK kısıtlamaları denetimini geçersiz kıl sağlar.Bu kısıtlamalar hakkında daha fazla bilgi için bkz: CHECK kısıtlamaları.
Not
Yalnızca CHECK kısıtlamalarını devre dışı bırakılabilir.UNIQUE, birincil anahtar, yabancı anahtar veya NOT NULL Kısıtlamaları devre dışı bırakılamıyor.
Aşağıdaki tablo, tablo ipucu için CHECK kısıtlamaları göz ardı ediliyor özetler.
Komutu |
Niteleyici |
Niteleyici türü |
---|---|---|
EKLE...SEÇİN * openrowset(bulk...) GELEN |
(ignore_constraints İLE) |
Tablo ipucu |
Aşağıdaki örnekte, bu niteleyici nasıl gösterilmektedir.IGNORE_CONSTRAINTS ipucu hakkında daha fazla bilgi için bkz: Tablo ipuçları (Transact-SQL).
Veri alınan doğrulanıyor
Toplu alma işleminde kısıtlamaları yoksayarsanız, daha sonra alınan verileri el ile denetleyerek kısıtlamalarını ihlal eden alınan tablo satırlarının tanımlayabilirsiniz.Verileri el ile denetlemek için , aşağıdakileri yapabilirsiniz: Transact-SQL sorgular veya kısıtlama koşulları sınamak, saklı yordamlar.
Not
Bir tablo güvenilir olup olmadığını öğrenmek için , bkz: is_not_trusted sütunsys.CHECK_CONSTRAINTS kataloğunu görüntüleyin.Daha fazla bilgi için bkz:sys.CHECK_CONSTRAINTS (Transact-SQL).