我正在尝试从SQL Server数据库中获取所选表和数据库的列,数据类型和列的大小。
到目前为止,我成功获取了列名和数据类型,但我也希望获取大小。
示例:考虑我在SQL Server数据库表中有2列,如下所示:
1) Name nvarchar(30)
3) Salary decimal(6,2)
现在我可以使用nvarchar
和salary
数据类型获取名称和工资,但是大小不会到来。
代码:
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
是否有可能获得以上结果?
答案 0 :(得分:1)
您可以将 CHARACTER_OCTET_LENGTH 用于char / varchar,将 Numeric_precision + Numeric_Scale 用于数字类型。