制約とデータ型を使用したテーブル列の詳細の取得
大規模なデータベースを扱う場合、テーブルを包括的に理解することが不可欠になります構造と制約。テーブル内の列のリストと、関連するデータ型、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')
このクエリを実行すると、次の列を含む詳細なテーブルが生成されます:
以上が制約やデータ型を含む SQL Server テーブルの列の詳細を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。