シナリオ:
SQL Server開発者として作業している場合は、SQLServerデータベースのすべての既定の制約を削除するスクリプトを生成する必要があります。解決策:
デフォルトの制約を削除するには、以下の構文を使用しますAlterTable[SchemaName]。[TableName]DropConstraint [Constraint Name]
以下のクエリを使用して、SQLServerデータベースにすべてのデフォルトの制約を生成するスクリプトを生成できます。
USE YourDatabaseName
go
SELECT
DB_Name() AS DBName,
Schema_name(t.Schema_id)AS SchemaName,
t.name AS TableName,
c.name AS ColumnName,
d.name AS DefaultConstraintName,
d.definition AS DefaultDefinition,
'Alter table ['+Schema_name(t.Schema_id)+'].['
+t.name+'] Drop Constraint ['+d.name+']' as DropDefaultConstraintQuery
FROM sys.default_constraints d
INNER JOIN sys.columns c ON
d.parent_object_id = c.object_id
AND d.parent_column_id = c.column_id
INNER JOIN sys.tables t ON
t.object_id = c.object_id 一部のテーブルまたはスキーマを除外する場合は、クエリでwhere句を使用して、レコードをさらにフィルタリングできます。上記のクエリを実行すると、すべてのデフォルトの制約に対してドロップスクリプトが生成されました。| SQLServerデータベースのすべての既定の制約を削除するスクリプトを生成する方法 |
DropDefaultConstraint列から結果を取得し、実行してデフォルトの制約を削除します。
ビデオデモ:SQLServerデータベースのすべてのデフォルトの制約を削除する方法