Sae*_*eid 3 c# sql t-sql sql-server
我有一个数据库(在SQL Server 2008 SP3中)并且需要C#代码中相关层次结构中的所有模式名称,表名和列名,我有以下SQLElement类:
public class SQLElement
{
public string SchemaName { get; set; }
public string TableName { get; set; }
public string ColumnName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
并有一个列表像:
List<SQLElement> SQLElementCollection = new List<SQLElement>();
那么如何从DB 读取名称并将它们添加到此列表(SQLElementCollection)?
例如假设我们创建一个这样的表:
Create Table [General].[City] (
[Id] BIGINT NOT NULL IDENTITY(1, 1),
[Title] NVARCHAR(30) NOT NULL DEFAULT (N''),
[Province_Id] BIGINT NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
我需要这样的清单:
[0]={SchemaName="General", TableName="City", ColumnName="Id"}
[1]={SchemaName="General", TableName="City", ColumnName="Title"}
[2]={SchemaName="General", TableName="City", ColumnName="Province_Id"}
Run Code Online (Sandbox Code Playgroud)
有没有人对此有任何想法?
编辑:
在下一步中,我们如何获得每列或相关属性的类型?
我的建议是DataType在SQLElement你有更改权限的情况下包含另一个成员,或者创建另一个具有属性名称的类DataType然后继承SQLElement,然后将数据类型名称保存到其中供以后使用,并使用下面的查询获取所有信息,谢谢
SELECT t.name AS TableName,
SCHEMA_NAME(t.schema_id) AS SchemaName,
c.name AS ColumnName,
tp.name as DataType
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
INNER JOIN sys.types tp ON c.system_type_id = tp.system_type_id
ORDER BY TableName;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12931 次 |
| 最近记录: |