0

DB、特に SQL Server 2008 についての知識はほとんどありません。

大規模なデータベースで作業する必要があり、各テーブルの内容を理解するのに役立つドキュメントがありません。

私がやりたいことは、データベースの一種のプロトタイプを表示することです。

例えば ​​:

Table1 - Col1 ; Col2 ;Col2

Table2 - Col1 ; 列 2 ;列 3 ...

各テーブルの各列の名前 (おそらくタイプ) を表示したいだけです。すでにスキーマを表示していますが、これを読むのは本当に不可能です (非常に多くのテーブル)。

この質問が既にされている場合はお詫び申し上げます。

ありがとう

4

2 に答える 2

1

私は常に最も簡単な解決策を考え出そうとしています。簡単なものがいくつか思い浮かびます。

1 - sp_help コマンドは、豊富な情報を提供します。以下の最初の呼び出しは 1 つのテーブルに対して実行し、以下の 2 番目の呼び出しはすべてのテーブルに対して実行します。

-- Use corect database
USE AdventureWorks2012
GO

-- One table
sp_help 'person.person'
GO

-- All tables
DECLARE @STMT VARCHAR(128) = 'EXEC SP_HELP ' + char(39) + '?' + CHAR(39);
EXEC SP_MSFOREACHTABLE @STMT
GO

ここに画像の説明を入力

2 - これはデータ型と関係に関するテキスト情報を提供しますが、グラフィック形式では提供しません。

SSMS には、テーブル間の関係を示すダイアグラム機能があります。person スキーマの 2 つのテーブルと sales スキーマの 1 つのテーブルの図を作成しました。

このユーティリティの欠点は、データ型が図に示されていないことです。ただし、プロパティ ページを開くと、フィールド (列) にドリルダウンして、それに関するすべてを見つけることができます。

ここに画像の説明を入力

3 - 最後になりましたが、より優れたサードパーティのツールをいつでも購入できます。

AUTOS おもちゃデータベースを使用して、いくつかのブログ トークを行っています。以下の図は、Oracle の ERD パッケージから作成されました。このツールの優れた利点は、データの種類と関係の両方が画像に表示されることです。

つまり、SSMS ダイアグラム ツールの欠点を修正します。また、DB2、ORACLE、または SQL Server からの DDL スクリプトを指定すると、ダイアグラムが生成されます。

要するに、予算に合った、快適なソリューションを想像してください。

ここに画像の説明を入力

于 2014-02-17T18:02:52.353 に答える
1

先ほど書いたこのクエリを試してみてください。探している情報の多くが得られることを願っています

SELECT  ss.name AS [Schema_Name]
       ,so.name AS Table_Name
       ,c.name  AS [Column_Name]
       ,st.name AS  [Data_Type]

FROM sys.all_objects so 
        INNER JOIN sys.columns c
ON so.object_id = c.object_id
INNER JOIN sys.schemas ss
ON so.[schema_id] = ss.[schema_id]
INNER JOIN sys.systypes st
ON c.user_type_id = st.xusertype
WHERE so.type = 'U'
于 2014-02-17T16:27:47.137 に答える