SQL提供查询结果表名而不创建新表

时间:2014-09-18 13:41:29

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

我有一个存储过程,它创建了两个表的数据集。我在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#中出现的名称是"表"和"表1和#34;分别

关于存储过程的其他所有功能都正常运行,我只是希望它为输出表返回不同的名称。 我已经尝试过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字段包含"表"和"表1"。

如果不创建其他表或表变量,是否完全无法重命名这些查询输出?

1 个答案:

答案 0 :(得分:1)

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