2

ときどき、SQL Server 2008 R2 データベースのいずれかのテーブルまたはビューの列のリストを取得したいと考えています。たとえば、高価な市販製品を使用せずにデータベース ドキュメントを作成する場合に便利です。

この情報を取得する簡単な方法は何ですか?

4

7 に答える 7

3

SQL Server 2008 R2 (他のバージョンの中でも特に) には、すべてのデータベースで自動的に提供されるシステム ビューがあります。テーブルが存在するデータベースに接続している限り、次のようなクエリを実行できます。

DECLARE @TableViewName NVARCHAR(128)
SET @TableViewName=N'MyTableName'

SELECT b.name AS ColumnName, c.name AS DataType, 
b.max_length AS Length, c.Precision, c.Scale, d.value AS Description
FROM sys.all_objects a
INNER JOIN sys.all_columns b
ON a.object_id=b.object_id
INNER JOIN sys.types c
ON b.user_type_id=c.user_type_id
LEFT JOIN sys.extended_properties d
ON a.object_id=d.major_id AND b.column_id=d.minor_id AND d.name='MS_Description'
WHERE a.Name=@TableViewName
AND a.type IN ('U','V')

もちろん、これは出発点にすぎません。すべてのデータベースで使用できる他の多くのシステム ビューと列があります。これらは、SQL Server Management Studio の次の場所で見つけることができます。Views > "System Views

于 2013-10-30T15:31:38.020 に答える
1

もう 1 つの方法は、INFORMATION_SCHEMA.columns ビューを照会することです。詳細は次のとおりです。

Information_Schema - 列

これにより、現在のデータベース内のすべての列 (およびそれらが属しているテーブル/ビュー) に関する情報が得られます。これには、データ型、精度、照合順序、および null を許可するかどうかなどが含まれます。

便利なことに、これらのビューは複数の DBMS プログラムでも維持されるため、同じまたは類似のクエリを使用して、SQL Server DB と同様に MySQL データベースに関する同じ情報を取得できる可能性があります。複数のプラットフォーム。

于 2013-10-30T15:57:57.613 に答える
1
exec sp_helptext <your view name>

ビューのみでも機能します。テーブル内の列の詳細が必要な場合は、blachniet の回答が最適です。

于 2013-10-30T16:14:51.960 に答える
1

sp_columnsは、テーブル内の各列に関する詳細情報を返します。そう答え

sp_columns @tablename

sp_helpは、列と制約を含むテーブル全体に関する詳細情報を返します。そう答え

sp_help @tablename

于 2013-10-30T15:37:41.180 に答える
0

新しいクエリ ウィンドウで、ビュー/テーブルの名前を入力して強調表示し、Alt-F1 を押します。これは、blachniet が提案したように、sp_help を実行します。

于 2013-10-30T16:10:04.220 に答える