2012-02-19 7 views
-1

私はテーブル内のいくつかのテーブルからすべてのカラムを返すクエリを持っていますが、どのカラム名がどのテーブルに属しているかを識別したいと思います。結果グリッドでこれらのリターンを得る方法はありますか?SQL Server 2008 R2を使用している場合、結果グリッドでデータベース列名を返すにはどうすればよいですか?

+0

知って良いことなぜそれが否定的投票に値するのか。 – PeanutsMonkey

答えて

1

はあなただけを使用することはできません:

あなたの次を与える必要があります
SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 

TABLE_CATALOG , 
     TABLE_SCHEMA , 
     TABLE_NAME , 
     COLUMN_NAME , 
     ORDINAL_POSITION , 
     COLUMN_DEFAULT , 
     IS_NULLABLE , 
     DATA_TYPE , 
     CHARACTER_MAXIMUM_LENGTH , 
     CHARACTER_OCTET_LENGTH , 
     NUMERIC_PRECISION , 
     NUMERIC_PRECISION_RADIX , 
     NUMERIC_SCALE , 
     DATETIME_PRECISION , 
     CHARACTER_SET_CATALOG , 
     CHARACTER_SET_SCHEMA , 
     CHARACTER_SET_NAME , 
     COLLATION_CATALOG , 
     COLLATION_SCHEMA , 
     COLLATION_NAME , 
     DOMAIN_CATALOG , 
     DOMAIN_SCHEMA , 
     DOMAIN_NAME 
+0

なぜFROMとINFORMATION_SCHEMA.COLUMNの間に空白を残しますか? – PeanutsMonkey

+0

私は使用するスクリプトからコピーして貼り付けただけの理由はありません。 – killerbunnyattack

1
SELECT table_name=sysobjects.name, 
     column_name=syscolumns.name, 
     datatype=systypes.name, 
     length=syscolumns.length 

    FROM sysobjects 

    JOIN syscolumns ON sysobjects.id = syscolumns.id 

    JOIN systypes ON syscolumns.xtype=systypes.xtype 

    WHERE sysobjects.xtype='U' 

    ORDER BY sysobjects.name,syscolumns.colid 

詳細情報が必要ですか?

+2

SQL Server 2005では、 'sysobjects'ビューをもう使用しないでください。' sys'スキーマでカタログビューを使用するべきです - 'sys.tables'、' sys.columns'など –

+0

@Kamil - ごめんなさい。これで新しいです。 sysobjectsなどを関連するテーブル名などに置き換えるだけですか? – PeanutsMonkey

+0

sysobjectsはテーブル・データを格納するシステム・テーブルで、syscolumnsはテーブル名とカラム名を含むカラム・データです。しかし、私の脳は更新が必要なように見えます。そのデータを取得する方法は古く、SQL Server 2008では推奨されていないからです。 – Kamil

0

あなたはINFORMATION_SCHEMA.COLUMNSビューを使用することができます。

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_CATALOG='your database name' AND 
    TABLE_NAME='your table name' 
+0

@Radke - メッセージ4104、レベル16、状態1、行4のエラーが発生しました マルチパート識別子「KUpdate」はバインドできませんでした。 – PeanutsMonkey

関連する問題