シナリオ:
あなたはSQLServer開発者として働いています。SQLServerデータベースのすべての外部キー制約を無効にするスクリプトを提供する必要があります。これは、1回限りのデータをロードする必要があり、データが参照整合性に違反していても問題がないシナリオである可能性があります。解決策:
無効化スクリプトを生成する前に、SQLServerデータベースから外部キー制約のリストを取得しましょう。
--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
SQLServerで外部キー制約が有効か無効かを確認する方法 |
次に、SQLServerデータベースで外部キー制約を無効にするスクリプトを生成しましょう
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
SQLServerデータベースのすべての外部キー制約を無効にするスクリプトを生成する方法 |
ビデオデモ:SQLServerデータベースですべての外部キー制約を無効にする方法