Scenariusz:
Pracujesz jako programista SQL Server. Musisz dostarczyć skrypty, aby wyłączyć wszystkie ograniczenia klucza obcego w bazie danych SQL Server. Może to być scenariusz, w którym musisz załadować jednorazowe dane i wszystko jest w porządku, jeśli dane naruszają integralność referencyjną.Rozwiązanie:
Pobierzmy listę ograniczeń kluczy obcych z bazy danych programu SQL Server, zanim wygenerujemy skrypt wyłączający.
--Get List of Foreign Key Constraints if Enabled or Disabled USE YourDatabaseName GO Select Schema_name(Schema_id) as SchemaName, object_name(Parent_object_id) as TableName, name as ForeignKeyConstraintName, Case When Is_disabled=1 Then 'No' ELSE 'Yes' End as IsEnabled from sys.foreign_keys
Jak sprawdzić, czy ograniczenie klucza obcego jest włączone lub wyłączone w SQL Server |
Teraz wygenerujmy skrypt wyłączający ograniczenie klucza obcego w bazie danych programu SQL Server
USE YourdatabaseName go -- Drop Foreign Key Constraints Script SELECT distinct 'ALTER TABLE ' + '['+ Schema_name(FK.schema_id) + '].['+ OBJECT_NAME(FK.parent_object_id) + ']'+ ' NOCHECK CONSTRAINT ' + '[' + FK.name + ']' AS DisableConstraintQuery FROM sys.foreign_keys AS FK where is_disabled=0
Jak wygenerować skrypt wyłączający wszystkie ograniczenia kluczy obcych w bazie danych SQL Server |
Prezentacja wideo:Jak wyłączyć wszystkie ograniczenia klucza obcego w bazie danych SQL Server