如果不存在则开始更新插入错误

时间:2017-06-14 06:42:42

标签: mysql asp.net vb.net

我查看代码并一次又一次地检查,真的不知道我的代码会发生什么并在下面收到错误 -

strSql=     "BEGIN if (not EXISTS (select empno tablenameA where empno = @empno)) " & _
            " begin " & _
            " Update tablenameA set ota_verifier = @ota_verifier, ota_approval = @ota_approval, ota_payroll = @ota_payroll, ota_hr = @ota_hr, " & _
            " ota_viewall = @ota_viewall, ota_HRMng = @ota_HRMng, ota_MD = @ota_MD, ota_SP=@ota_SP " & _
            " WHERE empno =  @empno " & _
            " end    " & _
            " else   " & _
            " begin  " & _
            " Insert INTO tablenameA (empno, ota_empname, ota_deptcode, ota_verifier, ota_approval,  ota_payroll, ota_hr, ota_viewall, ota_AD, ota_HRMng, ota_MD, ota_SP) " & _
            " VALUES (@empno, @ota_empname, @ota_deptcode, @ota_verifier, @ota_approval, @ota_payroll, @ota_hr, @ota_viewall, @ota_AD, @ota_HRMng, @ota_MD, @ota_SP) " & _
            "   end  " & _
            "   END "
  

'附近的语法不正确。'。关键字' else'附近的语法不正确。

3 个答案:

答案 0 :(得分:0)

您似乎错过FROMempno

之间的tablenameA关键字
strSql=     "BEGIN if (not EXISTS (select empno tablenameA where empno = @empno)) "

答案 1 :(得分:0)

**您需要添加FROM **

strSql=     "BEGIN if (not EXISTS (select ota_empno FROM [GOGREEN].[dbo].[tbOvertimeAccess] where ota_empno = @ota_empno)) " & _
            " begin " & _
            " Update tbOvertimeAccess set ota_verifier = @ota_verifier, ota_approval = @ota_approval, ota_payroll = @ota_payroll, ota_hr = @ota_hr, " & _
            " ota_viewall = @ota_viewall, ota_HRMng = @ota_HRMng, ota_MD = @ota_MD, ota_SP=@ota_SP " & _
            " WHERE ota_empno =  @ota_empno " & _
            " end    " & _
            " else   " & _
            " begin  " & _
            " Insert INTO tbOvertimeAccess (ota_empno, ota_empname, ota_deptcode, ota_verifier, ota_approval,  ota_payroll, ota_hr, ota_viewall, ota_AD, ota_HRMng, ota_MD, ota_SP) " & _
            " VALUES (@ota_empno, @ota_empname, @ota_deptcode, @ota_verifier, @ota_approval, @ota_payroll, @ota_hr, @ota_viewall, @ota_AD, @ota_HRMng, @ota_MD, @ota_SP) " & _
            "   end  " & _
            "   END "

答案 2 :(得分:0)

试试这个:

strSql=     "BEGIN if (not EXISTS (select empno FROM tablenameA where empno = @empno)) " & _
            " begin " & _
            " Update tablenameA set ota_verifier = @ota_verifier, ota_approval = @ota_approval, ota_payroll = @ota_payroll, ota_hr = @ota_hr, " & _
            " ota_viewall = @ota_viewall, ota_HRMng = @ota_HRMng, ota_MD = @ota_MD, ota_SP=@ota_SP " & _
            " WHERE empno =  @empno " & _
            " end    " & _
            " else   " & _
            " begin  " & _
            " Insert INTO tablenameA (empno, ota_empname, ota_deptcode, ota_verifier, ota_approval,  ota_payroll, ota_hr, ota_viewall, ota_AD, ota_HRMng, ota_MD, ota_SP) " & _
            " VALUES (@empno, @ota_empname, @ota_deptcode, @ota_verifier, @ota_approval, @ota_payroll, @ota_hr, @ota_viewall, @ota_AD, @ota_HRMng, @ota_MD, @ota_SP) " & _
            "   end  " & _
            "   END "