unote 書けば書くほどに

20230111

public void B_Table_marge()
{
DataTable dt = new DataTable();

string repTN = "DEPT_BK R";
string xbbTN = "DEPT X";
int i = 1;

//差分抽出
Console.WriteLine("差分抽出開始...\r\n");

strSQL_MINUS =
"select * from " + repTN +
" minus select * from " + xbbTN;

strSQL = strSQL_MINUS;
dt = DBA(strSQL); //SQL実行

Console.WriteLine(dt.Rows.Count + "行が更新対象\r\n");

col1 = "DEPTNO";
col2 = "KOUSHINBI";
//col3 = "REGISTEDDT";

whereON =
"R." + col2 + "< X." + col2 +
" and R." + col1 + " = X." + col1;

if (dt.Rows.Count != 0)
{
foreach (DataColumn dc in dt.Columns)
{
if (dc.ColumnName == col1 || dc.ColumnName == col2)
{
Console.WriteLine(i + ":"+ dc.ColumnName + " 更新不可\r\n");
}

else
{
Console.WriteLine(i + ":" + dc.ColumnName + " 更新実行\r\n");

strSQL_MRG =
"merge into " + repTN +//strign dbkTN
" using " + xbbTN +//dTN
" on (" + whereON + ")" + //sql_ON
" when matched then update set " +
"R." + dc.ColumnName + " = X." + dc.ColumnName;// //sql_UPSET = DBK.dc.ColumnName + D.dc.ColumnName

strSQL = strSQL_MRG;
dt = DBA(strSQL);
}
i++;
}
}
}