以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教 SQL update 语句  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96577)

--  作者:abc2363360
--  发布时间:2017/2/23 15:22:00
--  请教 SQL update 语句

数据中有2个表  表A   表A新 

表A  有列 1 , 2 , 3 , 4

表A新有列 1 ,2,3

 

主键都是 列 1

 

现在需要把表A新的数据更新到 表A   条件: 根据主键进行比较 表A 存在相同主键的,更新所有列内容  表A 不相同该主键的,新增这条记录。

 


--  作者:有点色
--  发布时间:2017/2/23 15:28:00
--  

 用代码处理

 

For Each dr As DataRow In DataTables("表A新").Select("")
    Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
    Dim Cols2() As String = {"接收列一","接收列二","接收列三"}
    Dim dr2 As DataRow = DataTables("表A").find("主键列 = \'" & dr("主键列") & "\'")
    If dr2 Is Nothing Then
        dr2 = DataTables("表A").AddNew()
        dr2("主键列") = dr("主键列")
    End If
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr(Cols1(i))
    Next
Next