48

DESCOracle のコマンドでできることのように、SQL Server 2008 のテーブルを記述したいと思います。

[EX].[dbo].[EMP_MAST]説明したいテーブルがありますが、うまくいきません。

表示されるエラー:

オブジェクト「EMP_MAST」はデータベース「master」に存在しないか、この操作に対して無効です。

4

8 に答える 8

87

テーブルを記述するためのシステムストアドプロシージャであるsp_columnsを使用できます。

exec sp_columns TableName

sp_helpを使用することもできます。

于 2012-06-18T07:00:05.247 に答える
41

このドキュメントによると:

DESC MY_TABLE

と同等です

SELECT column_name "Name", nullable "Null?", concat(concat(concat(data_type,'('),data_length),')') "Type" FROM user_tab_columns WHERE table_name='TABLE_NAME_TO_DESCRIBE';

これを SQL Server に相当するものに大まかに翻訳しましたEX。データベースで実行していることを確認してください。

SELECT column_name AS [name],
       IS_NULLABLE AS [null?],
       DATA_TYPE + COALESCE('(' + CASE WHEN CHARACTER_MAXIMUM_LENGTH = -1
                                  THEN 'Max'
                                  ELSE CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR(5))
                                  END + ')', '') AS [type]
FROM   INFORMATION_SCHEMA.Columns
WHERE  table_name = 'EMP_MAST'
于 2012-06-18T11:45:00.403 に答える
8

これが役立つかもしれません:

Use MyTest
Go
select * from information_schema.COLUMNS where TABLE_NAME='employee'

{ where: MyTest= DatabaseName Employee= TableName } -- オプションの条件

于 2013-08-11T16:03:47.467 に答える
8

のテーブルの説明/詳細情報は、キーボード ショートカットを使用できますSQL Server 2008

手順に従ってください:

  1. テーブル名を書き、
  2. それを選択し、 +を押しますAlt F1
  3. 上記のテーブルの詳細情報/説明が表示されます。

    1) テーブルの作成日、
    2) 列の説明、
    3) ID、
    4) インデックス、
    5) 制約、
    6) 参照など。以下に示すように []:

Alt+F1 デモ

于 2016-07-11T05:52:28.797 に答える
6

私は変換を試みる答えが好きですが、コードを使用している間は、BIGINT や DATETIME などの VARCHAR タイプではない列は好きではありません。今日は似たようなものが必要だったので、時間をかけて自分の好みに合わせて修正しました。また、関数にカプセル化されました。これは、オラクルが処理するときに説明を入力するだけで見つけることができる最も近いものです。私のケースステートメントにはまだいくつかのデータ型が欠けている可能性がありますが、これは私が試したすべてのもので機能します. また、序数順に並べます。これを拡張して、主キー列を簡単に含めることもできます。

CREATE FUNCTION dbo.describe (@TABLENAME varchar(50))
returns table
as
RETURN
(
SELECT TOP 1000 column_name AS [ColumnName],
       IS_NULLABLE AS [IsNullable],
       DATA_TYPE + '(' + CASE 
                                    WHEN DATA_TYPE = 'varchar' or DATA_TYPE = 'char' THEN 
                                      CASE 
                                        WHEN Cast(CHARACTER_MAXIMUM_LENGTH AS VARCHAR(5)) = -1 THEN 'Max'
                                        ELSE Cast(CHARACTER_MAXIMUM_LENGTH AS VARCHAR(5))
                                      END
                                    WHEN DATA_TYPE = 'decimal' or DATA_TYPE = 'numeric' THEN
                                      Cast(NUMERIC_PRECISION AS VARCHAR(5))+', '+Cast(NUMERIC_SCALE AS VARCHAR(5))
                                    WHEN DATA_TYPE = 'bigint' or DATA_TYPE = 'int' THEN
                                      Cast(NUMERIC_PRECISION AS VARCHAR(5))
                                    ELSE ''
                                  END + ')' AS [DataType]
FROM   INFORMATION_SCHEMA.Columns
WHERE  table_name = @TABLENAME
order by ordinal_Position
);
GO

ここで関数を作成したら、私が使用したサンプルテーブルです

create table dbo.yourtable
(columna bigint,
 columnb int,
 columnc datetime,
 columnd varchar(100),
 columne char(10),
 columnf bit,
 columng numeric(10,2),
 columnh decimal(10,2)
 )

次に、次のように実行できます

select * from describe ('yourtable')

以下を返します

ColumnName IsNullable DataType


columna NO bigint(19)
columnb NO int(10)
columnc NO datetime()
columnd NO varchar(100)
columne NO char(10)
columnf NO bit()
columng NO numeric(10, 2)
columnh NO decimal(10, 2)

これが誰かに役立つことを願っています。

于 2013-10-03T16:06:41.213 に答える
2

下の行を入力するだけです。

exec sp_help [table_name]
于 2016-04-26T17:27:51.593 に答える