sql >> Database >  >> RDS >> Sqlserver

Hoe alle controlebeperkingen in SQL Server-database uit te schakelen - SQL Server / TSQL-zelfstudie, deel 87

Scenario:

Je werkt als SQL Server / ETL ontwikkelaar. U moet een heleboel gegevens in tabellen in SQL Server-database laden. Controlebeperkingen worden op verschillende tabellen gemaakt. De kans bestaat dat de gegevens die u gaat laden niet in aanmerking komen volgens Check Constraint. Het bedrijf wil dat u de gegevens toch laadt, zelfs als het niet in aanmerking komt voor Check Constraint. U wilt alle beperkingen in de SQL Server-database tijdelijk uitschakelen en vervolgens de gegevens laden en vervolgens de controlebeperkingen opnieuw inschakelen.


Oplossing:

Het onderstaande script kan worden gebruikt om het script 'Check Constraint uitschakelen' te genereren voor alle Check Constraints die in de database zijn ingeschakeld. U kunt de tabellen in de where-clausule verder filteren als u geen script voor alle tabellen wilt genereren.

 --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
 
 
 
 
Scripts genereren om alle controlebeperkingen in SQL Server-database uit te schakelen
 Kopieer de resultaten uit de DisableCheckConstraint-kolom en voer deze uit in SSMS om de vereiste Check Constraints uit te schakelen.
ALTER TABLE [dbo].[Customer22] NOCHECK CONSTRAINT [CK__Customer2__FName__6C190EBB]

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


Videodemo:scripts genereren om alle controlebeperkingen in SQL Server uit te schakelen

  1. ORACLE IIF-verklaring

  2. Hoe het MySQL Root-gebruikerswachtwoord opnieuw in te stellen

  3. ORA-12154 kan de opgegeven verbindings-ID niet oplossen

  4. Indexgroottelimiet van 900 bytes in tekenlengte