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 |
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