Сценарий:
Вие работите като разработчик на SQL Server, трябва да подготвите скриптове, за да активирате всички ограничения на външния ключ в база данни, които са деактивирани. Това може да се случи, може би някой е деактивирал ограниченията на външния ключ за натоварване на данни, при което не се интересува от нарушаване на референтната цялост и е забравил да ги активира по-късно.
Решение:
Първо, нека вземем списъка с ограниченията на външния ключ със статус, като използваме по-долу заявка
--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
|
Как да проверите дали ограничението на външния ключ е деактивирано или активирано в базата данни на SQL Server |
Сега нека генерираме скриптове, за да активираме ограниченията на външния ключ, които са деактивирани в базата данни на SQL Server, като използваме заявката по-долу.
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
|
Как да генерирам скрипт за активиране на всички ограничения на външния ключ в базата данни на SQL Server |
Копирайте резултатите и стартирайте в SSMS, за да активирате деактивирани ограничения на външния ключ в базата данни на SQL Server.
Видео демонстрация:Как да генерирате скрипт, за да активирате всички ограничения на външния ключ в SQL Server