我正在尝试使用一个连接字符串来更新几个表,因为我正在制作提交表单来更新表单,而且我不知道如何更新所有信息,因为它位于不同的表中,我的操作方式如下:
<!-- #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查询的第一行等效。
我不知道该怎么办。
答案 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:将字符串串联为变量。