シナリオ:
SQL Server開発者として働いている場合は、SQL Serverデータベースから列名、テーブル名、スキーマ名を含むすべての既定の制約を返すスクリプトを作成する必要があります。解決策:
ビューやテーブルなどのシステムオブジェクトを使用して、SQL Serverデータベースからすべてのデフォルトの制約、列名、テーブル名、スキーマ名を取得できます。以下のクエリでは、3つのシステムビューを使用して必要な情報を取得しています。
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
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 データベースで上記のスクリプトを実行すると、以下の結果が返されました。 |
| SQLServerデータベースから列を含むデフォルトの制約名を取得する方法 |
ビデオデモ:SQLServerデータベースのすべてのデフォルト制約のリストを取得する方法