SQL Server で DESCRIBE TABLE を使う:GUI ツールを使う方法

2024-04-05

SQL Server における DESCRIBE TABLE の同等機能

MySQL や PostgreSQL などのデータベースでは、DESCRIBE TABLE コマンドを使ってテーブルの構造を簡単に確認できます。一方、SQL Server では同等の単一コマンドは存在しません。しかし、いくつか代替方法を使って同様の情報を得ることができます。

代替方法

  1. sp_columns システムストアドプロシージャ
EXEC sp_columns @table_name = 'テーブル名';

この方法は、テーブル名、列名、データ型、長さ、桁数、許容値、デフォルト値、主キー情報など、詳細な列情報を取得できます。

  1. sys.columns システムビュー
SELECT *
FROM sys.columns
WHERE object_id = OBJECT_ID('テーブル名');

この方法は、sp_columns よりも簡潔な方法で列情報を取得できます。

  1. INFORMATION_SCHEMA ビュー
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'テーブル名';

この方法は、標準 SQL に準拠した方法で列情報を取得できます。

各方法の詳細

  • 最も詳細な情報
  • 複雑なオプション指定が可能
  • 習得難易度が高い
  • 簡潔な記述
  • sp_columns よりも情報量が少ない
  • 標準 SQL に準拠
  • 他データベースとの互換性が高い

補足

  • 上記以外にも、GUI ツールや SSMS のオブジェクトエクスプローラーを使ってテーブル構造を確認することもできます。
  • SQL Server 2016 以降では、sys.dm_db_column_partitions DMV を使ってパーティションテーブルの列情報を取得できます。

関連用語

  • SQL
  • SQL Server
  • T-SQL
  • DESCRIBE TABLE
  • sp_columns



sp_columns システムストアドプロシージャ

USE AdventureWorks2019;

EXEC sp_columns @table_name = 'Person.Address';

sys.columns システムビュー

USE AdventureWorks2019;

SELECT *
FROM sys.columns
WHERE object_id = OBJECT_ID('Person.Address');

INFORMATION_SCHEMA ビュー

USE AdventureWorks2019;

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Person.Address';

  • 上記のコードは、SQL Server Management Studio (SSMS) などのクエリ エディターで実行できます。
  • テーブル名やデータベース名を変更して、他のテーブルの情報を確認することもできます。



SQL Server で DESCRIBE TABLE の同等機能を実現するその他の方法

  1. SSMS でデータベースに接続します。
  2. オブジェクトエクスプローラーでテーブルを展開します。
  3. テーブル名の上で右クリックし、「テーブルの定義を表示」を選択します。

GUI ツール

  • SQL Server Data Tools (SSDT)
  • Visual Studio
  • Toad for SQL Server

これらのツールには、テーブル構造を表示する機能が備わっています。

T-SQL スクリプト

SELECT 
    c.name AS 列名, 
    t.name AS データ型, 
    c.length AS 長さ, 
    c.is_nullable AS 許容値
FROM sys.columns c
INNER JOIN sys.types t ON c.system_type_id = t.system_type_id
WHERE c.object_id = OBJECT_ID('テーブル名');

PowerShell

Get-SqlColumn -DatabaseName 'データベース名' -TableName 'テーブル名'

.NET Framework

using (var connection = new SqlConnection("接続文字列"))
{
    var cmd = new SqlCommand("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'テーブル名'", connection);
    var reader = cmd.ExecuteReader();
    while (reader.Read())
    {
        Console.WriteLine("{0} ({1})", reader["COLUMN_NAME"], reader["DATA_TYPE"]);
    }
}

sql sql-server t-sql


【もう迷わない】SQL Server 2005 ストアドプロシージャ エラー行番号取得の3つの方法とサンプルコード

そこで、ここでは、SQL Server 2005 でエラーメッセージから実際のストアド プロシージャ行番号を確実に取得する方法をいくつかご紹介します。方法 1: ERROR_LINE() 関数を使用するSQL Server 2005 には、ERROR_LINE() 関数という便利な機能が用意されています。この関数は、現在のエラーが発生した行番号を返します。ストアド プロシージャ内で RAISEERROR ステートメントを使用してエラーを発生させる場合、この関数を使用して実際の行番号を取得できます。...


UPDATE ... FROM ステートメントを使用して別のテーブルからの値に基づいて PostgreSQL のテーブル行を更新する方法

table_name: 更新するテーブルの名前column_name: 更新する列の名前subquery: 更新に使用する値を返すサブクエリcondition: 更新対象の行を指定する条件例 1:別のテーブルからの値に基づいて行を更新するproducts テーブルと categories テーブルがあり、products テーブルの category_id 列が categories テーブルの id 列を参照しているとします。products テーブルの各製品のカテゴリ名を category_name 列に更新するには、次のクエリを使用します。...


INSERTステートメントとOUTPUT句で主キーをスマートに取得

SQL において、テーブルに新しい行を挿入することは、INSERT ステートメントを使用して行うことができます。 このステートメントには、挿入する列と値を指定する必要があります。加えて、INSERT ステートメントに OUTPUT 句を追加することで、挿入された行の主キー値を取得することができます。 これは、自動生成される主キー値を取得する場合や、挿入された行を参照する他の操作を実行する場合に役立ちます。...


SQLとMariaDBで重複を除外してユニークな値を取得する方法:2つの実用的なアプローチ

MariaDBにおいて、2つのテーブルの値を比較し、一方のテーブルに存在する値を除外したユニークな値を取得する方法について、2つの方法をご紹介します。方法1:EXCEPT句を使用するEXCEPT句は、2つのクエリ結果の差集合を求める演算子です。この機能を利用することで、一方のテーブルに存在する値を除外したユニークな値を効率的に取得することができます。...


【初心者向け】CodeIgniter で SQL プロシージャを駆使して最新データを取得する方法

原因:キャッシュ: PHP は、データベースクエリの結果をキャッシュしてパフォーマンスを向上させることがあります。しかし、キャッシュが古い場合、最新の更新された結果が返されないことがあります。プロシージャの呼び出し方法: プロシージャを呼び出す際に、必要なパラメータをすべて渡していない場合や、パラメータの値が正しくない場合、最新の更新された結果が返されないことがあります。...


SQL SQL SQL Amazon で見る



SHOW CREATE TABLEコマンドでDDLを取得

データベース管理システム (DBMS) において、既存のテーブル構造を理解することは、データ操作や分析を行う上で非常に重要です。SQL言語には、テーブルの列名、データ型、制約条件などを詳細に記述した構造情報を取得するためのコマンドが用意されています。


【初心者向け】SQL Server テーブル定義の確認方法:T-SQL クエリとシステムプロシージャを使いこなす

SQL Server でテーブル定義を表示するには、主に以下の 2 つの方法があります。システムストアドプロシージャを使用するTransact-SQL (T-SQL) クエリを使用する利点シンプルでわかりやすい初心者でも使いやすい手順SQL Server Management Studio (SSMS) を起動します。