Aracılığıyla paylaş


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 noteImportant 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).