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

Cách tắt tất cả các Ràng buộc Kiểm tra trong Cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / TSQL Phần 87

Tình huống:

Bạn đang làm việc với tư cách là nhà phát triển SQL Server / ETL. Bạn cần tải nhiều dữ liệu vào các bảng trong Cơ sở dữ liệu SQL Server. Kiểm tra Ràng buộc được tạo trên các bảng khác nhau. Có khả năng dữ liệu bạn sắp tải sẽ không đủ điều kiện theo Kiểm tra Ràng buộc. Doanh nghiệp muốn bạn tải dữ liệu bằng mọi cách ngay cả khi dữ liệu đó không đủ điều kiện với Kiểm tra Ràng buộc. Bạn muốn tạm thời vô hiệu hóa tất cả các ràng buộc trong cơ sở dữ liệu SQL Server, sau đó tải dữ liệu rồi bật lại Kiểm tra Ràng buộc.


Giải pháp:

Tập lệnh dưới đây có thể được sử dụng để tạo tập lệnh Tắt Kiểm tra Ràng buộc cho tất cả các Ràng buộc Kiểm tra được kích hoạt trong cơ sở dữ liệu. Bạn có thể lọc thêm các bảng trong mệnh đề where nếu bạn không muốn tạo tập lệnh cho tất cả các bảng.

 --Generate Script to Disable All Check Constraint in SQL Server Database
 Select DB_Name() AS DBName,
 Schema_Name(Schema_id) AS TableSchema,
 Object_name(parent_object_id) as TableName,
  definition,
  'Alter Table [' + Schema_Name(Schema_id) 
    + '].[' + Object_name(parent_object_id) 
    + ']' + ' NOCHECK  CONSTRAINT ' 
    + '[' + NAME + ']' AS DisableCheckConstraint
 From sys.check_constraints
 where is_disabled=0
 
 
 
 
Cách tạo tập lệnh để Tắt tất cả Ràng buộc Kiểm tra trong Cơ sở dữ liệu SQL Server
 Sao chép kết quả từ cột DisableCheckConstraint và chạy trong SSMS để tắt các Ràng buộc kiểm tra bắt buộc. 
ALTER TABLE [dbo].[Customer22] NOCHECK CONSTRAINT [CK__Customer2__FName__6C190EBB]

ALTER TABLE [dbo].[Employee] NOCHECK CONSTRAINT [CK__Employee__FName__7A672E12]


Video Demo:Cách tạo tập lệnh để tắt tất cả các Ràng buộc Kiểm tra trong 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. Chuyển một varchar chứa đầy các giá trị được phân tách bằng dấu phẩy vào hàm SQL Server IN

  2. ROLLBACK TRUNCATE trong SQL Server

  3. Kết nối SQL Server với SugarCRM

  4. Câu lệnh ALTER TABLE xung đột với ràng buộc FOREIGN KEY

  5. Phải khai báo các biến vô hướng