sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man inaktiverar alla kontrollbegränsningar i SQL Server Database - SQL Server / TSQL självstudie del 87

Scenario:

Du arbetar som SQL Server/ETL-utvecklare. Du måste ladda en massa data till tabeller i SQL Server Database. Kontrollbegränsningar skapas på olika tabeller. Det finns chanser att data du ska ladda inte kommer att kvalificera sig enligt Check Constraint. Företaget vill att du ska ladda data ändå, även om det inte uppfyller kraven för Check Constraint. Du vill tillfälligt inaktivera alla begränsningar i SQL Server-databasen och sedan ladda data och sedan återaktivera Check Constraints.


Lösning:

Skriptet nedan kan användas för att generera skriptet Disable Check Constraint för alla Check Constraints som är aktiverade i databasen. Du kan ytterligare filtrera tabellerna i where-satsen om du inte vill generera skript för alla tabeller.

 --Generate Script to Disable All Check Constraint in SQL Server Database
 Select DB_Name() AS DBName,
 Schema_Name(Schema_id) AS TableSchema,
 Object_name(parent_object_id) as TableName,
  definition,
  'Alter Table [' + Schema_Name(Schema_id) 
    + '].[' + Object_name(parent_object_id) 
    + ']' + ' NOCHECK  CONSTRAINT ' 
    + '[' + NAME + ']' AS DisableCheckConstraint
 From sys.check_constraints
 where is_disabled=0
 
 
 
 
Hur man genererar skript för att inaktivera alla kontrollbegränsningar i SQL Server-databasen
 Kopiera resultaten från DisableCheckConstraint-kolumnen och kör i SSMS för att inaktivera nödvändiga Check Constraints.
ALTER TABLE [dbo].[Customer22] NOCHECK CONSTRAINT [CK__Customer2__FName__6C190EBB]

ALTER TABLE [dbo].[Employee] NOCHECK CONSTRAINT [CK__Employee__FName__7A672E12]


Videodemo :Hur man genererar skript för att inaktivera alla Check Constraints i SQL Server

  1. Hur man skriver en .Net-applikation som fungerar med både SqlServer och Oracle (nu när System.Data.OracleClient är utfasad)

  2. Skapa en utlösare som uppdaterar en kolumn i en tabell när en kolumn i en annan tabell uppdateras

  3. mysql pivotfrågeresultat med GROUP BY

  4. SQLite NOT NULL-begränsning