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

Làm cách nào để tắt các Ràng buộc cho tất cả các bảng và kích hoạt nó?

EXEC sp_MSforeachtable @command1="ALTER TABLE ? NOCHECK CONSTRAINT ALL"
GO

Bạn cũng có thể muốn làm điều này:

EXEC sp_MSforeachtable @command1="ALTER TABLE ? DISABLE TRIGGER ALL"
GO

Để kích hoạt chúng sau đó

EXEC sp_MSforeachtable @command1="ALTER TABLE ? ENABLE TRIGGER ALL"
GO

-- SQL enable all constraints - enable all constraints sql server
-- sp_MSforeachtable is an undocumented system stored procedure
EXEC sp_MSforeachtable @command1="ALTER TABLE ? CHECK CONSTRAINT ALL"
GO

Chỉnh sửa:
Nếu vô hiệu hóa các ràng buộc là không đủ, bạn sẽ phải bỏ các ràng buộc.

Nếu bạn đang xóa và tạo lại các bảng, bạn sẽ phải tạo lại các ràng buộc khóa ngoại sau đó.

Nếu bạn chỉ cần bỏ các ràng buộc, bạn có thể thấy điều này hữu ích:
Ràng buộc khóa ngoại SQL DROP TABLE

Nếu bạn cần viết script để loại bỏ và tạo các ràng buộc, bạn có thể thấy bài đăng của tôi ở đây hữu ích hơn:
SQL Server:Làm cách nào để lấy tham chiếu khóa ngoại từ information_schema?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MS SQL 2008 - lấy tất cả các tên bảng và số hàng của chúng trong một DB

  2. Cách lưu và truy xuất hình ảnh PictureBox vào Cơ sở dữ liệu máy chủ Sql Cột Varbinary (Tối đa) VB.NET

  3. TSQL có trả lại kết quả nhanh hơn thủ tục được lưu trữ trong SQL Server không

  4. Giới thiệu về OPENJSON với các ví dụ (SQL Server)

  5. Cách tạo dạng xem trong SQL Server