0

SQL Server 2005 で次の手順を実行しようとしています。開発サーバーでこれを実行できましたが、ライブ サーバーでこれを使用しようとすると、「内部クエリ プロセッサ エラー: クエリ プロセッサができませんでした」というエラーが表示されます。クエリ プランを生成します。詳細については、カスタマー サポート サービスにお問い合わせください。」同じデータベースと同じフォーマットを使用しています。Web で検索すると、このエラーを回避するために SQL Server 2005 で使用されるいくつかの修正が示されていますが、私の DBA は、すべてのパッチがサーバーで更新されていることを確認しています。誰でも私にこれについての手がかりを与えることができますか?

クエリ:

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)
4

1 に答える 1

0

基本的にクエリオプティマイザーでバグが発生しており、他の唯一の回避策 (ホットフィックスが機能しなかったと仮定) は、クエリを書き直してエラーを回避することです。たとえば、サブクエリを結合として作成すると、これを行うことができます。Microsoft が問題を修正したにもかかわらず、このエラーが発生する理由は多数あります。

于 2009-10-06T13:24:15.923 に答える