Tình huống:
Bạn đang làm việc với tư cách là nhà phát triển SQL Server, Bạn cần chuẩn bị các tập lệnh để bật tất cả Ràng buộc khóa ngoại trong cơ sở dữ liệu đã bị vô hiệu hóa. Điều này có thể xảy ra, có thể ai đó đã vô hiệu hóa Ràng buộc khóa ngoại để tải dữ liệu mà họ không quan tâm đến việc vi phạm tính toàn vẹn tham chiếu và quên bật chúng sau này.
Giải pháp:
Trước hết, hãy lấy danh sách Ràng buộc khóa ngoại với trạng thái bằng cách sử dụng truy vấn dưới đây
--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
|
Cách kiểm tra xem Ràng buộc khóa ngoại được Tắt hay Bật trong Cơ sở dữ liệu SQL Server |
Bây giờ, hãy tạo tập lệnh để kích hoạt Ràng buộc khóa ngoại đã bị vô hiệu hóa trong Cơ sở dữ liệu máy chủ SQL bằng cách sử dụng truy vấn bên dưới.
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
|
Cách tạo tập lệnh để bật tất cả Ràng buộc khóa ngoại trong Cơ sở dữ liệu SQL Server |
Sao chép kết quả và chạy trong SSMS để bật Ràng buộc khóa ngoài đã tắt trong Cơ sở dữ liệu SQL Server.
Video Demo:Cách tạo tập lệnh để bật tất cả Ràng buộc khóa ngoài trong SQL Server