通过一个连接更新多个表?

时间:2019-04-29 23:07:17

标签: sql sql-server asp-classic

我正在尝试使用一个连接字符串来更新几个表,因为我正在制作提交表单来更新表单,而且我不知道如何更新所有信息,因为它位于不同的表中,我的操作方式如下:

<!-- #include virtual=/shared_acceso_data/cls_acceso_data/fc_Acceso_Data_Body.asp-->
    set rs_Actualizar = Server.CreateObject("ADODB.Recordset")
    rs_Actualizar.Open  "UPDATE         dbo_cip" &_
                        "SET            codigo_unico_certificado=" &codigo_unico_certificado &_
                        "WHERE          codigo_unico_certificado=" &codigo_unico_certificado &_

                        "UPDATE         dbo_cip" &_
                        "SET            nombre_solicitante_certificado="&nombre_solicitante_certificado &_
                        "WHERE          nombre_solicitante_certificado="&nombre_solicitante_certificado &_

                        "UPDATE         dbo_estado_certificado" &_
                        "SET            codigo_estado_certificado="&codigo_estado_certificado &_
                        "WHERE          codigo_estado_certificado="&codigo_estado_certificado,cn_body (cn_body is the connection string)

我收到以下错误:

  

用于ODBC驱动程序的Microsoft OLE DB提供程序错误'80040e14'[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]'codigo_unico_certificado'附近的语法不正确。莱恩71

第71行与SQL查询的第一行等效。

我不知道该怎么办。

1 个答案:

答案 0 :(得分:0)

尝试一下:

set rs_Actualizar = Server.CreateObject("ADODB.Recordset")
dim mySqlString
mySqlString = "UPDATE         dbo_cip " &_
                    "SET            codigo_unico_certificado=" & codigo_unico_certificado & " " &_
                    "WHERE          codigo_unico_certificado=" & codigo_unico_certificado & "; " &_

                    "UPDATE         dbo_cip " &_
                    "SET            nombre_solicitante_certificado=" & nombre_solicitante_certificado & " " &_
                    "WHERE          nombre_solicitante_certificado=" & nombre_solicitante_certificado & "; " &_

                    "UPDATE         dbo_estado_certificado " &_
                    "SET            codigo_estado_certificado=" & codigo_estado_certificado & " " &_
                    "WHERE          codigo_estado_certificado=" & codigo_estado_certificado & ";" 

rs_Actualizar.Open mySqlString, cn_body

好像您只是在WHERE子句前缺少一些空格。如果值是任何字符串类型(例如CHAR或VARCHAR),也可以将它们括在单引号中。如果您使用的是MSSQL 2005或更高版本,请用分号分隔每个UPDATE语句。

更新:由于海报确认值不是VARCHAR,因此删除了单引号。 更新2:将字符串串联为变量。