我正在尝试使用单个连接字符串更新几个表,因为我正在创建一个更新表单的提交表单,我不知道如何更新所有信息,因为它位于不同的表中,方式我这样做是这样的:
<!-- #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查询的第一行。
我不知道怎么能这样做。
试试这个:
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:将字符串连接分隔为变量。