現在、2つのテーブルの違いを持つテーブルを返すSQLコードがあります。したがって、2つのテーブル間で異なるデータを持つ行のみを持つテーブルが返されます。テーブルは異なる環境のまったく同じです。私は、SQLでロードされたDataTableから異なるデータを持つ列名をどのように返すことができるのだろうか?異なっている列知るためにDataTableの相違点を持つ列の取得
crs.DataHasChanged = ChangeState.False;
//Compare data of two tables.
sql = "Select 'Source Diff' as CompareDiff, " + BuildColumns(colIncludes, "C1", textColName) + " From " + sourceServer + "." + sourceDB + ".dbo." + tableStateObj.TableName + " C1 ";
sql += "EXCEPT ";
sql += "Select 'Source Diff' as CompareDiff, " + BuildColumns(colIncludes, "C2", textColName) + " From " + destServer + "." + destDB + ".dbo." + tableStateObj.TableName + " C2 ";
sql += "UNION ";
sql += "Select 'Dest Diff' as CompareDiff, " + BuildColumns(colIncludes, "C2", textColName) + " From " + destServer + "." + destDB + ".dbo." + tableStateObj.TableName + " C2 ";
sql += "EXCEPT ";
sql += "Select 'Dest Diff' as CompareDiff, " + BuildColumns(colIncludes, "C1", textColName) + " From " + sourceServer + "." + sourceDB + ".dbo." + tableStateObj.TableName + " C1 ";
sql += "Order By 2,3";
ds = new DataSet();
using (SqlDataAdapter da = new SqlDataAdapter(sql, compareConnString))
{
da.Fill(ds);
}
if (ds.Tables[0].Rows.Count > 0)
{
crs.DataHasChanged = ChangeState.True;
}
crs.DataChangeTable = ds.Tables[0];
いい仕事です!あなたが探しているものの内外を知ると簡単に! – WickedFan