Scénář:
Pracujete jako vývojář serveru SQL Server, musíte poskytnout skripty pro zakázání všech omezení cizího klíče v databázi SQL Server. Toto může být scénář, kdy potřebujete načíst jednorázová data a pokud data porušují referenční integritu, budete v pořádku.Řešení:
Pojďme získat seznam omezení cizího klíče z databáze SQL Server, než vygenerujeme skript pro zakázání.
--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 zkontrolovat, zda je na serveru SQL povoleno nebo zakázáno omezení cizího klíče |
Nyní vygenerujeme skript pro zakázání omezení cizího klíče v databázi 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 vygenerovat skript pro zakázání všech omezení cizího klíče v databázi SQL Server |
Video ukázka:Jak zakázat všechna omezení cizího klíče v databázi SQL Server