2016-12-09 30 views
1

SQL Serverデータベースから、選択したテーブルとデータベースの列の列、データ型、およびサイズを取得しようとしています。列名とデータ型を取得する

これまでのところ、カラム名とデータ型の取得に成功しましたが、サイズもフェッチしたいと思います。

例:今、私はnvarcharsalaryデータ型と名前と給与を取得することができていますが、サイズが来ていない

1) Name nvarchar(30) 
3) Salary decimal(6,2) 

:私は以下のようなSQL Serverデータベースのテーブルの2列を持って考えてみましょう。

コード:

String[] columnRestrictions = new String[4]; 
columnRestrictions[0] = 'MyDb'; 
columnRestrictions[1] = 'dbo'; 
columnRestrictions[2] = 'Employee'; 
using (SqlConnection con = new SqlConnection("MyConnectionString")) 
{ 
    con.Open(); 
    var columns = con.GetSchema("Columns", columnRestrictions).AsEnumerable() 
     .Select(c => new (c[3].ToString(), c.Field<string>("DATA_TYPE"))).ToList(); 

は私が取得しています結果は以下のようなものです:

Name nvarchar 
Salary decimal 

期待される結果:

1) Name nvarchar(30) 
3) Salary decimal(6,2) 

ソースコード:Reference

はそれがpossiblです上記の結果を得るには?

答えて

1

あなたは、char/varchar型のためCHARACTER_OCTET_LENGTHと数値型のNUMERIC_PRECISION + NUMERIC_SCALEを使用することができます。

+0

コードの使い方を教えてもらえますか? –

+0

一般的に正しいですが、char/nvarcharを除いて、私はむしろ 'character_maximum_length'カラム値を使って言うでしょう。 –

関連する問題