【问题标题】:SQL give query result table name without creating new tableSQL给出查询结果表名而不创建新表
【发布时间】:2014-11-12 21:28:35
【问题描述】:

我有一个存储过程,它创建两个表的数据集。我在 c# 中调用这个存储过程,如下所示:

DataTable mytable1 = myDataSet.tables[0];
DataTable mytable2 = myDataSet.tables[1];

我希望能够将“表名”传递给 dataset.tables 函数,因为我想存储过程有一天会将其他表返回到数据集中。

这里已经提出了非常相似的问题,例如: Give name to table after select 我还找到了其他帮助网站,例如:http://odetocode.com/articles/365.aspx

但我找到的所有答案最终都会创建额外的表或表变量。我不想创建任何新表或变量,我只想为我的查询输出创建一个别名。

我尝试在 SQL 存储过程中为我的表提供别名,但没有成功。 c#中出现的名字分别是“Table”和“Table1”。

关于存储过程的所有其他功能都正常运行,我只是希望它为输出表返回不同的名称。 我已经尝试了SQL代码:(为简单起见,括号中的条件)

SELECT * FROM myTable1 AS myTable1 WHERE (conditions)
ORDER BY (field) ASC

SELECT * FROM myTable2 INNER JOIN myTable1 ON (join on id field) WHERE (conditions)
ORDER BY (field) ASC

当前的 SQL 代码仍会导致 c# tableName 字段包含“Table”和“Table1”。

如果不创建额外的表或表变量,是否完全不可能重命名这些查询输出?

【问题讨论】:

标签: c# sql sql-server stored-procedures


【解决方案1】:

无类型数据集(如您的情况)不会为数据表提供任何表名。它将被设置为默认值。 (即table1等)。由于适配器/读取器只是在模式中填充结果行和列。

【讨论】:

  • 非常感谢,这正是我需要知道的。
猜你喜欢
  • 2018-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 2019-05-17
  • 2013-08-11
  • 2022-08-11
  • 1970-01-01
相关资源
最近更新 更多