SQL在不创建新表的情况下提供查询结果表名称

本文关键字:查询 结果 情况下 创建 新表 SQL | 更新日期: 2023-09-27 18:22:17

我有一个存储过程,它创建了一个由两个表组成的数据集。我从c#中调用这个存储过程如下:

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

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

这里也提出了类似的问题,例如:选择后为表命名,我发现了其他帮助网站,如:http://odetocode.com/articles/365.aspx

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

我曾尝试在SQL存储过程中为表提供别名,但没有成功。出现在c#中的名称分别是"Table"answers"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"answers"Table1"。

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

SQL在不创建新表的情况下提供查询结果表名称

未类型化数据集(与您的情况一样)不会为数据表提供任何表名。它将被设置为默认值。(即表1等)。由于适配器/读取器只是填充产生的行&架构中的列。