首先我想让你知道我不是工程师,我只是一个网页设计师,在我的工作范围内工作。我们有一堆在 Windows server 2003 / SQL 2000 环境中运行的 ASP 经典应用程序。该公司购买了一台带有 Windows server 2008R2 和 SQL 2012 的新服务器,他们给了我将应用程序迁移到新服务器的任务。几周以来,我阅读并阅读了很多关于此的手册和文档,除了其中一个应用程序之外,我完成了我的任务。该应用程序生成并创建和接口以回答调查。这很奇怪,因为登录页面有效:输入用户名并通过,然后进入管理区域,存储在数据库中的选项显示没有问题,但是当我尝试进入调查回答时,浏览器给了我这个:
用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序错误“80040e14”
[Microsoft][ODBC SQL Server Driver][SQL Server]'@errno' 附近的语法不正确。
/SEL/Encuesta/preguntatodo_nuevo.asp,线 108
这是我在 /SEL/Encuesta/preguntatodo_nuevo.asp, línea 108 中找到的内容:
sSQL = "Update UsuariosClima set NumCuestContestados = NumCuestContestados+1 Where IDUsuario = " & IDUsuario
conn.Execute(sSQL)
我知道仅凭这些信息很难帮助我,所以如果您需要更多数据,请告诉我。我不想让你做我的工作,如果有人能引导我走向正确的方向,我会自己继续。非常非常感谢你。
请记住:我不是工程师,像小时候一样给我解释。
更新 - UsuariosClima 中的触发器:
tD_Usuarios:
ALTER trigger tD_Usuarios on dbo.UsuariosClima for DELETE as
begin
declare @errno int,
@errmsg varchar(255)
if exists (
select * from deleted,AccesoCuestionarioClima
where
AccesoCuestionarioClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30001,
@errmsg = 'Cannot DELETE "Usuarios" because "AccesoCuestionario" exists.'
goto error
end
if exists (
select * from deleted,AccesoClienteClima
where
AccesoClienteClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30001,
@errmsg = 'Cannot DELETE "Usuarios" because "AccesoCliente" exists.'
goto error
end
if exists (
select * from deleted,PertenenciaClima
where
PertenenciaClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30001,
@errmsg = 'Cannot DELETE "Usuarios" because "Pertenencia" exists.'
goto error
end
update RespuestaCuestionariosClima
set
RespuestaCuestionariosClima.IDUsuario = NULL
from RespuestaCuestionariosClima,deleted
where
RespuestaCuestionariosClima.IDUsuario = deleted.IDUsuario
return
error:
raiserror @errno @errmsg
rollback transaction
end
tU_Usuarios:
ALTER trigger tU_Usuarios on dbo.UsuariosClima for UPDATE as
begin
declare @numrows int,
@nullcnt int,
@validcnt int,
@insIDUsuario int,
@errno int,
@errmsg varchar(255)
select @numrows = @@rowcount
if
update(IDUsuario)
begin
if exists (
select * from deleted,AccesoCuestionarioClima
where
AccesoCuestionarioClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30005,
@errmsg = 'Cannot UPDATE "UsuariosClima" because "AccesoCuestionarioClima" exists.'
goto error
end
end
if
update(IDUsuario)
begin
if exists (
select * from deleted,AccesoClienteClima
where
AccesoClienteClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30005,
@errmsg = 'Cannot UPDATE "UsuariosClima" because "AccesoClienteClima" exists.'
goto error
end
end
if
update(IDUsuario)
begin
if exists (
select * from deleted,PertenenciaClima
where
PertenenciaClima.IDUsuario = deleted.IDUsuario
)
begin
select @errno = 30005,
@errmsg = 'Cannot UPDATE "UsuariosClima" because "PertenenciaClima" exists.'
goto error
end
end
if
update(IDUsuario)
begin
update RespuestaCuestionariosClima
set
RespuestaCuestionariosClima.IDUsuario = NULL
from RespuestaCuestionariosClima,deleted
where
RespuestaCuestionariosClima.IDUsuario = deleted.IDUsuario
end
return
error:
raiserror @errno @errmsg
rollback transaction
end