私が理解しているように、デフォルト値の制約はISO標準の一部ではないため、INFORMATION_SCHEMAには表示されません。クロスプラットフォームであるため、INFORMATION_SCHEMAはこの種のタスクに最適な選択のようですが、情報が利用できない場合は、SQL Serverで廃止されたシステムテーブルビューではなく、オブジェクトカタログビュー(sys。*)を使用する必要があります。 2005年以降。
以下は@user186476の答えとほとんど同じです。指定された列のデフォルト値制約の名前を返します。 (SQL Server以外のユーザーの場合、デフォルトの名前を削除するにはデフォルトの名前が必要です。デフォルトの制約に自分で名前を付けない場合、SQLServerは「DF_TableN_Colum_95AFE4B5」のようなおかしな名前を作成します。変更しやすくするため将来のスキーマでは、常に制約に明示的に名前を付けてください!)
-- returns name of a column's default value constraint
SELECT
default_constraints.name
FROM
sys.all_columns
INNER JOIN
sys.tables
ON all_columns.object_id = tables.object_id
INNER JOIN
sys.schemas
ON tables.schema_id = schemas.schema_id
INNER JOIN
sys.default_constraints
ON all_columns.default_object_id = default_constraints.object_id
WHERE
schemas.name = 'dbo'
AND tables.name = 'tablename'
AND all_columns.name = 'columnname'