Sql server SQL Server 2005:内部查询处理器错误:
我试图在SQLServer2005中执行以下过程。我能够在我的开发服务器中执行此操作,当我尝试在Live server中使用此操作时,我收到一个错误内部查询处理器错误:查询处理器无法生成查询计划。有关更多信息,请联系客户支持服务。我使用相同的数据库和相同的格式。当我们在网上搜索时,它显示了sql server 2005中为避免此错误而使用的一些修复程序,但我的DBA已确认所有修补程序都已在我们的服务器中更新。有人能给我一些线索吗 查询:Sql server SQL Server 2005:内部查询处理器错误:,sql-server,sql-execution-plan,Sql Server,Sql Execution Plan,我试图在SQLServer2005中执行以下过程。我能够在我的开发服务器中执行此操作,当我尝试在Live server中使用此操作时,我收到一个错误内部查询处理器错误:查询处理器无法生成查询计划。有关更多信息,请联系客户支持服务。我使用相同的数据库和相同的格式。当我们在网上搜索时,它显示了sql server 2005中为避免此错误而使用的一些修复程序,但我的DBA已确认所有修补程序都已在我们的服务器中更新。有人能给我一些线索吗 查询: create Procedure [dbo].[sampl
create Procedure [dbo].[sample_Select]
@ID as varchar(40)
as
Declare @Execstring as varchar(1000)
set @Execstring =
'
Declare @MID as varchar(40)
Set @MID = '''+@ID+'''
select * from (
select t1.field1, t1.field2 AS field2 , t1.field3 AS field3 , L.field1 AS field1 , L. field2 AS field2 from table1 AS t1
INNER JOIN MasterTable AS L ON L. field1 = t1. field2
where t1. field2 LIKE @MID
) as DataTable
PIVOT
(
Count(field2)
FOR field3
IN ('
Select @Execstring=@Execstring+ L.field2 +',' FROM MasterTable AS L inner join
table1 AS t1 ON t1.field1= L.field2 Where t1.field2 LIKE @ID
set @Execstring = stuff(@Execstring, len(@Execstring), 1, '')
set @Execstring =@Execstring +')) as pivotTable'
exec (@Execstring)
您基本上在查询优化器中遇到了一个bug,假设热修复程序不起作用,唯一的其他解决方法是重写查询以避免错误。例如,可以通过将子查询作为联接来实现。尽管Microsoft修复了此问题,但仍有许多原因导致此错误发生 试着打电话给MS客服。如果是bug,支持案例应该是免费的。您的DBA是否已确认已安装搜索结果中提到的修补程序,或者他是否仅确认数据库处于最高修补程序级别?Microsoft Update是否没有新的修补程序?它可能是一个非官方补丁,尚未发布。您必须与Microsoft支持部门联系才能获取这些信息。可能值得执行Print@Execstring,而不是执行它来检查生产服务器上的输出,并将其与开发服务器匹配,以防万一。两个服务器都提供相同的查询。