Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да деактивирам ограниченията за всички таблици и да го активирам?

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

Може да искате да направите и това:

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

За да ги активирате след това

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

Редактиране:
Ако деактивирането на ограниченията не е достатъчно, ще трябва да премахнете ограниченията.

Ако премахвате и създавате отново таблиците, след това ще трябва да създадете отново ограниченията на външния ключ.

Ако просто трябва да премахнете ограниченията, може да намерите това за полезно:
Ограничение за външен ключ на SQL DROP TABLE

Ако трябва да напишете скрипт за премахване и създаване на ограниченията, може да намерите публикацията ми тук за по-полезна:
SQL Server:Как да получа справка за външен ключ от 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. T-SQL съхранена процедура, която приема множество Id стойности

  2. Използване на пълнотекстово търсене в SQL Server 2008 в множество таблици, колони

  3. Върнете всички външни ключове, които препращат към дадена таблица в SQL Server

  4. проблем с външен ключ и индекс

  5. Какъв е най-добрият начин да се справите с DBNull