同一个站点下有多个项目,其中一个项目的页面空白,且后台报错如下:
2018-08-23 15:38:52,811 [66] ERROR logerror -
【Error】:System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> System.Data.SqlClient.SqlException: 执行超时已过期。完成操作之前已超时或服务器未响应。 ---> System.ComponentModel.Win32Exception: 等待的操作过时。
其它项目都不存在这个问题,也不报错。
最后研发找到有问题的sql:
调整后的sql
说明:
1、varchar虽然是可变长度,但长度也不能随意指定max
2、如果列长度的确必须使用max,则可使用虚拟(where中有计算列时也可采用,同时也可以虚拟列上添加索引),也可以解决上述问题
alter table [TM_Variable] add newcol as (CAST([OType] AS nvarchar(max)) +CASE WHEN ([OName] IS NULL) THEN N'' ELSE [OName] END )