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

Jak wyłączyć wszystkie ograniczenia klucza obcego w bazie danych SQL Server — samouczek SQL Server/TSQL — część 77?

Scenariusz:

Pracujesz jako programista SQL Server. Musisz dostarczyć skrypty, aby wyłączyć wszystkie ograniczenia klucza obcego w bazie danych SQL Server. Może to być scenariusz, w którym musisz załadować jednorazowe dane i wszystko jest w porządku, jeśli dane naruszają integralność referencyjną.

Rozwiązanie:


Pobierzmy listę ograniczeń kluczy obcych z bazy danych programu SQL Server, zanim wygenerujemy skrypt wyłączający.

--Get List of Foreign Key Constraints if Enabled or Disabled
    USE YourDatabaseName
    GO
    Select 
    Schema_name(Schema_id) as SchemaName,
    object_name(Parent_object_id) as TableName,
    name as ForeignKeyConstraintName,
    Case When Is_disabled=1 Then 'No'
    ELSE 'Yes' End as IsEnabled
    from sys.foreign_keys
 
 
 
 
 
 
 
 
Jak sprawdzić, czy ograniczenie klucza obcego jest włączone lub wyłączone w SQL Server
 
Teraz wygenerujmy skrypt wyłączający ograniczenie klucza obcego w bazie danych programu SQL Server

USE YourdatabaseName
go
-- Drop Foreign Key Constraints Script 
SELECT distinct 'ALTER TABLE ' 
+ '['+ Schema_name(FK.schema_id) 
+ '].['+ OBJECT_NAME(FK.parent_object_id) 
+ ']'+ ' NOCHECK  CONSTRAINT ' 
+ '[' + FK.name + ']' AS DisableConstraintQuery
 FROM   sys.foreign_keys AS FK
 where is_disabled=0
 
 
 
 
Jak wygenerować skrypt wyłączający wszystkie ograniczenia kluczy obcych w bazie danych SQL Server
 

Prezentacja wideo:Jak wyłączyć wszystkie ograniczenia klucza obcego w bazie danych SQL Server


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj wiele wartości w kursorze SQL Server

  2. Czy w Microsoft SQL Server istnieje typ danych logicznych, taki jak w MySQL?

  3. Zmień funkcję o wartościach przechowywanych w tabeli w SQL Server

  4. Potrzebujesz kolumny daty i godziny w SQL Server, która automatycznie aktualizuje się po zmodyfikowaniu rekordu

  5. SQL Server 2008 nie może się zalogować za pomocą nowo utworzonego użytkownika