Scenariusz:
Pracujesz jako programista SQL Server / ETL. Musisz załadować pakiet danych do tabel w bazie danych SQL Server. Sprawdź Wiązania są tworzone w różnych tabelach. Istnieją szanse, że dane, które zamierzasz załadować, nie będą się kwalifikować zgodnie z ograniczeniem sprawdzania. Firma i tak chce, abyś ładował dane, nawet jeśli nie kwalifikuje się do opcji Check Constraint. Chcesz tymczasowo wyłączyć wszystkie ograniczenia w bazie danych SQL Server, a następnie załadować dane, a następnie ponownie włączyć sprawdzanie ograniczeń.
Rozwiązanie:
Poniższy skrypt może być użyty do wygenerowania skryptu Wyłącz sprawdzanie ograniczeń dla wszystkich sprawdzanych ograniczeń, które są włączone w bazie danych. Możesz dalej filtrować tabele w klauzuli WHERE, jeśli nie chcesz generować skryptu dla wszystkich tabel.--Generate Script to Disable All Check Constraint in SQL Server Database Select DB_Name() AS DBName, Schema_Name(Schema_id) AS TableSchema, Object_name(parent_object_id) as TableName, definition, 'Alter Table [' + Schema_Name(Schema_id) + '].[' + Object_name(parent_object_id) + ']' + ' NOCHECK CONSTRAINT ' + '[' + NAME + ']' AS DisableCheckConstraint From sys.check_constraints where is_disabled=0
Jak generować skrypty wyłączające wszystkie ograniczenia sprawdzania w bazie danych SQL Server |
ALTER TABLE [dbo].[Customer22] NOCHECK CONSTRAINT [CK__Customer2__FName__6C190EBB] ALTER TABLE [dbo].[Employee] NOCHECK CONSTRAINT [CK__Employee__FName__7A672E12]
Wideo demonstracyjne:jak generować skrypty, aby wyłączyć wszystkie ograniczenia sprawdzania w SQL Server