【发布时间】:2014-02-21 08:53:20
【问题描述】:
我们可以得到 SELECT Query 返回的结果的模式吗?下面的代码:
string SQLQuery = "SELECT DISTINCT c.name 'Column Name', t.Name 'Data type' FROM" +
" sys.columns c INNER JOIN " +
" sys.types t ON c.system_type_id = t.system_type_id" +
" LEFT OUTER JOIN " +
" sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id" +
" LEFT OUTER JOIN" +
" sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id" +
" WHERE" +
" c.object_id = OBJECT_ID('[DB].[dbo].[" + ddlTable.SelectedItem.Text + "]') AND t.name <> 'sysname'";
此代码返回列名以及指定表的数据类型。我的要求是从选择查询中获取列名和数据类型,而不是直接指定表名。喜欢
string SQLQuery = "SELECT DISTINCT c.name 'Column Name', t.Name 'Data type' FROM" +
" sys.columns c INNER JOIN " +
" sys.types t ON c.system_type_id = t.system_type_id" +
" LEFT OUTER JOIN " +
" sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id" +
" LEFT OUTER JOIN" +
" sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id" +
" WHERE" +
" c.object_id = OBJECT_ID('SELECT col1, col2 from table(s)') AND t.name <> 'sysname'";
虽然这行不通。
【问题讨论】:
-
此查询是否会被任何应用程序使用?像 C# 应用程序或类似的应用程序?
-
@PeterHenell 是的。会的。
-
根据您需要此信息的原因,答案可能会有所不同。为什么需要获取查询结果的元数据?
-
@PeterHenell 我正在使用 SharePoint。要求是将选择查询的结果填充到 SharePoint 列表中。列表和数据的架构将被动态创建。
标签: sql-server database sql-server-2008-r2 relational-database