获取列大小以及列名和数据类型

时间:2016-12-09 14:29:27

标签: c# .net sql-server linq ado.net

我正在尝试从SQL Server数据库中获取所选表和数据库的列,数据类型和列的大小。

到目前为止,我成功获取了列名和数据类型,但我也希望获取大小。

示例:考虑我在SQL Server数据库表中有2列,如下所示:

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

现在我可以使用nvarcharsalary数据类型获取名称和工资,但是大小不会到来。

代码:

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

是否有可能获得以上结果?

1 个答案:

答案 0 :(得分:1)

您可以将 CHARACTER_OCTET_LENGTH 用于char / varchar,将 Numeric_precision + Numeric_Scale 用于数字类型。

相关问题