使用一个连接更新多个表?

问题描述 投票:-2回答:1

我正在尝试使用单个连接字符串更新几个表,因为我正在创建一个更新表单的提交表单,我不知道如何更新所有信息,因为它位于不同的表中,方式我这样做是这样的:

<!-- #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查询的第一行。

我不知道怎么能这样做。

sql sql-server asp-classic
1个回答
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:将字符串连接分隔为变量。

© www.soinside.com 2019 - 2024. All rights reserved.