Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tắt tất cả Ràng buộc khóa ngoại trong Cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / TSQL Phần 77

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 cung cấp tập lệnh để vô hiệu hóa tất cả Ràng buộc khóa ngoại trong cơ sở dữ liệu SQL Server. Đây có thể là tình huống mà bạn cần tải dữ liệu một lần và bạn sẽ ổn nếu dữ liệu vi phạm tính toàn vẹn của tham chiếu.

Giải pháp:


Hãy lấy danh sách các Ràng buộc khóa ngoại từ Cơ sở dữ liệu SQL Server trước khi chúng tôi tạo tập lệnh tắt.

--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 Bật hay Tắt trong SQL Server
 
Bây giờ chúng ta hãy tạo tập lệnh để vô hiệu hóa ràng buộc khóa ngoại trong cơ sở dữ liệu 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
 
 
 
 
Cách tạo Tập lệnh để vô hiệu hóa tất cả ràng buộc khóa ngoại trong cơ sở dữ liệu SQL Server
 

Video Demo:Cách tắt tất cả Ràng buộc khóa ngoại trong Cơ sở dữ liệu SQL Server


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OBJECTPROPERTY () so với OBJECTPROPERTYEX () trong SQL Server:Sự khác biệt là gì?

  2. Làm cách nào để chuyển đổi tích tắc sang định dạng ngày tháng?

  3. LOG10 () Ví dụ trong SQL Server

  4. Nối các giá trị dựa trên ID

  5. OLTP trong bộ nhớ:Có gì mới trong SQL Server 2016