Вы можете получить схему для каждой таблицы отдельно и объединить ее, используя XDocument. Вот функция для получения схемы из запроса к базе данных:
XDocument GrabSchema(
string dataSetName,
string sql)
{
var con = new SqlConnection("<<YourConnectionString>>");
var command = new SqlCommand(sql, con);
var sqlAdapter = new SqlDataAdapter(command);
var dataSet = new DataSet(dataSetName);
sqlAdapter.FillSchema(dataSet, SchemaType.Mapped);
var stream = new MemoryStream();
dataSet.WriteXmlSchema(stream);
stream.Seek(0, System.IO.SeekOrigin.Begin);
return XDocument.Load(XmlReader.Create(stream));
}
Затем вы объединяете две схемы таблиц, например:
var firstSchema = GrabDataset("t1", "select a = 49");
var secondSchema = GrabDataset("t2", "select b = '50'");
firstSchema.Root.Add(secondSchema.Root.Elements());
Вы можете проверить, имеет ли смысл объединенная схема, загрузив ее в другой набор данных:
DataSet dataSet = new DataSet();
dataSet.ReadXmlSchema(firstSchema.CreateReader());