本帖最后由 guoqp 于 2024-1-18 11:20 编辑
SQL是这样的
update 定额工时数据表_中石油版
set
增补工时 = 0
where 年度 = @年度 and 项目编号 = @项目编号
update 定额工时数据表_中石油版
set
增补工时 = case when @增补 = 0 then 0 else isnull((select 工时*定额工时数据表_中石油版.单位数量 from 定额字典表中石油版 where 专业 = 定额工时数据表_中石油版.专业 and 定额项 = 定额工时数据表_中石油版.定额项 and 阶段 like '%初步%'),0) end
where 年度 = @年度 and 项目编号 = @项目编号 and 设计阶段 like '%施工%'
and 定额项 not in(select 定额项 from 定额工时数据表_中石油版 where 年度 = @年度 and 项目编号 = @项目编号 and 设计阶段 like '%初步%')
我用SELECT加入上述WHERE条件查看数据结果为空,也就是没有符合更新条件的数据
上边这个SQL我在SQL管理器中执行不报错,只显示影响0行,但活字格这边执行就报以下错误提示,日志也查了
错误码: 500信息: Msg -2, Level 11, State 0, Line 0\nTimeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
以下是本地执行后出错的截图
最后我改为使用存储过程,问题解决了,经过分析应该是活字格这边有什么机制,因为即使是存储过程,在SQL管理器执行也需要差不多十秒左右才能完成
|