【发布时间】:2013-04-16 14:40:22
【问题描述】:
假设我在 SQLServer 中有一个名为 MyTable 的表
ID FirstName LastName
1 Harry Dan
2 Maria Vicente
3 Joe Martin
现在如果我必须在表中插入任何数据,我将像这样简单地触发插入查询
INSERT INTO MyTable (ID, FirstName, LastName) VALUES (4, Smith, Dan);
但是如果我事先不知道列名怎么办,我只知道表名。那么有没有办法在运行时获取表的列名呢?
【问题讨论】:
-
您正在将数据插入到运行时才知道结构的表中?恕我直言,这听起来像是一个糟糕的场景。
-
@Jake1164,这对于完全断开连接的系统很常见。考虑一个示例,您有一个集中式数据存储,该存储用作促进者在您一无所知的地理分散服务之间共享数据。现在考虑您可以发送一个对象,利用其属性,并为您一无所知的表构建
INSERT语句 - 您所知道的只是属性与架构匹配并且该表是假定到那里。 简而言之,我可以想到更多您不知道架构的场景。 -
除了关于查询系统元数据的所有答案之外,如果您更喜欢“纯”.NET 解决方案,那么您可以使用SMO
Tableobject 并检查Columns集合。
标签: c# asp.net .net sql-server