asp.net将视图部分数据同步到另一个数据库的表里,怎么快速同步

2019-11-28 10:03发布

服务器上有一张视图,将视图里的部分数据同步到本地数据库表里,当有数十万条数据时,同步特别慢,请问正确的思路是什么:
string sql = "select * from V_BSDT_STUDENT"; //服务器数据库里的视图
DataTable dt = bll.SelectOracleSql(sql); //获取它的所有数据
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow row = dt.Rows[i];
DataTable ds = bll.SelectbySql("select StudentID from WC_Student where StudentID='" + row["XH"].ToString().Trim() + "'"); //本地数据库表里是否存在这条数据
if (ds.Rows.Count > 0)//有则更新
{
string updateSql = "update WC_Student set " +
...
"where StudentID='" + row["XH"].ToString().Trim() + "'";
bll.RunbySql(updateSql);
}
else //没有则增加
{
DataRow newRow;
newRow = bll.SelectbySql("select * from WC_Student where 1=2").NewRow();
...
bll.Insert(newRow, "WC_Student");
}

            }
        }

2条回答
【Aperson】
2楼-- · 2019-11-28 10:25

SqlBulkCopy 比你这样快多了,楼上正解

查看更多
Juvenile、少年°
3楼-- · 2019-11-28 10:26

可以先用 SqlBulkCopy 插入到临时表中,然后批量更新数据就好了

查看更多
登录 后发表回答