ホームページ > データベース > mysql チュートリアル > 制約やデータ型を含む SQL Server テーブルの列の詳細を取得するにはどうすればよいですか?

制約やデータ型を含む SQL Server テーブルの列の詳細を取得するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-01 05:26:10
オリジナル
267 人が閲覧しました

How Can I Retrieve SQL Server Table Column Details Including Constraints and Data Types?

制約とデータ型を使用したテーブル列の詳細の取得

大規模なデータベースを扱う場合、テーブルを包括的に理解することが不可欠になります構造と制約。テーブル内の列のリストと、関連するデータ型、NOT NULL 制約、および PRIMARY KEY 情報を取得することで、データ アーキテクチャに関する貴重な洞察を得ることができます。

SQL Server には、そのような詳細を抽出するためのメカニズムがいくつか用意されています。単純なクエリで列名、データ型、NULL 可能性のステータスを取得できます。

SELECT 
    c.name AS ColumnName,
    t.Name AS DataType,
    c.is_nullable AS IsNull
FROM
    sys.columns c
JOIN 
    sys.types t ON c.user_type_id = t.user_type_id
WHERE
    c.object_id = OBJECT_ID('YourTableName')
ログイン後にコピー

PRIMARY KEY 情報の統合

このクエリをさらに強化するには、次のものを組み込むことができます。主キー制約。 sys.index_columns テーブルと sys.indexes テーブルを活用することで、列が主キーとして定義されているかどうかを判断できます。

LEFT OUTER JOIN
    sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN
    sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
ログイン後にコピー

最終クエリと出力

前のコード スニペットを組み合わせると、次のような包括的な結果が得られます。クエリ:

SELECT
    c.name AS "Column Name",
    t.Name AS "Data Type",
    c.max_length AS "Max Length",
    c.precision,
    c.scale,
    c.is_nullable AS "is Null",
    ISNULL(i.is_primary_key, 0) AS "Primary Key"
FROM
    sys.columns c
INNER JOIN
    sys.types t ON c.user_type_id = t.user_type_id
LEFT OUTER JOIN
    sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN
    sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
WHERE
    c.object_id = OBJECT_ID('YourTableName')
ログイン後にコピー

このクエリを実行すると、次の列を含む詳細なテーブルが生成されます:

  • 列名
  • データ型
  • 最大長 (文字データ型および一部の数値型の場合)
  • 精度 (数値データの場合)
  • スケール (数値データ型の場合)
  • は Null (列が NULL 値を許可するかどうかを示します)
  • 主キー (列が主キーの一部であるかどうかを示します)キー制約)

以上が制約やデータ型を含む SQL Server テーブルの列の詳細を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート