Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak upuścić listę tabel SQL Server, ignorując ograniczenia?

To zależy od tego, jak chcesz porzucić stoły. Jeśli lista tabel musi zostać usunięta, obejmuje prawie ponad 20% tabel w bazie danych.

Następnie wyłączę wszystkie ograniczenia w tej bazie danych w moim skrypcie, usunę tabele i włączę ograniczenia w tym samym skrypcie.

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

Na koniec, aby sprawdzić stan swoich ograniczeń, uruchom to zapytanie.

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

Jeśli nie chcesz wyłączać ograniczeń na poziomie bazy danych, zrób listę tabel, które chcesz usunąć.

Krok 1:Sprawdź ograniczenia związane z tymi tabelami

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

Krok 2:Wyłącz ograniczenia związane z tymi tabelami.

ALTER TABLE MyTable NOCHECK CONSTRAINT MyConstraint

Krok 3:Upuść stoły

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. Nie można połączyć się z AWS EC2 z Visual Studio (a właściwie z dowolnego miejsca)

  2. Node.js i Microsoft SQL Server

  3. WYBRAĆ wiersze z czasem 30 minut lub krótszym?

  4. SQL do pozyskiwania danych z dowolnego poprzedniego miesiąca

  5. SQL Server:AKTUALIZUJ tabelę za pomocą ORDER BY