Scenariusz:
Pracujesz jako programista SQL Server, musisz przygotować skrypty, aby włączyć wszystkie ograniczenia klucza obcego w bazie danych, które są wyłączone. Może się tak zdarzyć, być może ktoś wyłączył ograniczenia klucza obcego dla ładowania danych, w którym nie obchodzi go naruszenie integralności referencyjnej i zapomniał włączyć je później.
Rozwiązanie:
Przede wszystkim zdobądźmy listę ograniczeń kluczy obcych ze statusem za pomocą poniższego zapytania
--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 wyłączone lub włączone w bazie danych SQL Server |
Teraz wygenerujmy skrypty, aby włączyć ograniczenia klucza obcego, które są wyłączone w bazie danych programu SQL Server za pomocą poniższego zapytania.
USE YourdatabaseName
go
-- Enable Foreign Key Constraints Script
SELECT distinct 'ALTER TABLE '
+ '['+ Schema_name(FK.schema_id)
+ '].['+ OBJECT_NAME(FK.parent_object_id)
+ ']'+ ' CHECK CONSTRAINT '
+ '[' + FK.name + ']' AS EnableConstraintQuery
FROM sys.foreign_keys AS FK
where is_disabled=1
 |
Jak wygenerować skrypt, aby włączyć wszystkie ograniczenia klucza obcego w bazie danych SQL Server |
Skopiuj wyniki i uruchom w SSMS, aby włączyć wyłączone ograniczenia kluczy obcych w bazie danych programu SQL Server.
Pokaz wideo:jak wygenerować skrypt, aby włączyć wszystkie ograniczenia kluczy obcych w programie SQL Server