sql >> データベース >  >> RDS >> Sqlserver

INFORMATION_SCHEMAを使用してデフォルトの制約を見つけるにはどうすればよいですか?

    私が理解しているように、デフォルト値の制約は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'
    


    1. SQLで部屋の空き状況を確認する

    2. PHPとMySQLを使用して簡単なCRUDを簡単に作成する方法

    3. Mysqldump'は、内部または外部のコマンド操作可能なプログラムまたはバッチファイルとして認識されません

    4. MMOゲームとデータベース設計