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

Как да пуснете списък с таблици на SQL Server, като игнорирате ограниченията?

Зависи как искате да пуснете масите. Ако списъкът с таблици трябва да отпадне, покрива почти над 20% от таблиците във вашата DB.

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

--To Disable a Constraint at DB level

EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'

--Write the code to DROP tables

DROP TABLE TABLENAME

DROP TABLE TABLENAME

DROP TABLE TABLENAME

--To Enable a Constraint at DB level

EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'

Накрая, за да проверите състоянието на вашите ограничения, стартирайте тази заявка.

--Checks the Status of Constraints

SELECT (CASE 
    WHEN OBJECTPROPERTY(CONSTID, 'CNSTISDISABLED') = 0 THEN 'ENABLED'
    ELSE 'DISABLED'
    END) AS STATUS,
    OBJECT_NAME(CONSTID) AS CONSTRAINT_NAME,
    OBJECT_NAME(FKEYID) AS TABLE_NAME,
    COL_NAME(FKEYID, FKEY) AS COLUMN_NAME,
    OBJECT_NAME(RKEYID) AS REFERENCED_TABLE_NAME,
    COL_NAME(RKEYID, RKEY) AS REFERENCED_COLUMN_NAME
FROM SYSFOREIGNKEYS
ORDER BY TABLE_NAME, CONSTRAINT_NAME,REFERENCED_TABLE_NAME, KEYNO

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

Стъпка 1:Проверете ограниченията, свързани с тези таблици

SELECT * 
FROM sys.foreign_keys
WHERE referenced_object_id = object_id('dbo.Tablename')

Стъпка 2:Деактивирайте ограниченията, които са свързани с тези таблици.

ALTER TABLE MyTable NOCHECK CONSTRAINT MyConstraint

Стъпка 3 :Пуснете таблиците

DROP TABLE TABLENAME


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Групово вмъкване с .fmt файл:Код на грешка на операционната система (нула)

  2. Водещ заместващ знак за търсене в пълен текст на SQL Server

  3. Как да създам стъпка в моята задача за агент на SQL Server, която ще изпълнява моя SSIS пакет?

  4. Ядрото на Entity Framework няма оптимална производителност

  5. Как да документирате вашата база данни на SQL Server