【发布时间】:2011-06-03 22:05:39
【问题描述】:
返回多个结果的存储过程:
CREATE PROCEDURE [dbo].[GetMultipleTable]
AS
BEGIN
if exists (select something from somewhere where somecondition = 1)
begin
select * from firsttable
end
select * from secondtable
END
当我们执行存储过程时,使用SqlDataAdapter的Fill方法来填充一个DataSet的多个表。
DataSet ds;
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
我可以得到结果。但我认为我们可以做得比这更好:
var index = 0;
if( ds.Tables.Count > 1 ){
DataTable first = ds.Tables[index];
index++;
// do something
}
DataTable second = ds.Tables[index];
// do something
我很好奇我们是否可以按名称而不是索引来获取表。喜欢..
DataTable first = ds.Tables["first"];
// do something
if(ds.Tables.Containts("second"))
{
DataTable second = ds.Tables["second"];
// do something
}
问题是:是否可以在存储过程中设置结果表的名称?
【问题讨论】:
标签: sql-server stored-procedures dataset