データベースを SQL Server 2005 から 2008 に移行するテストを行っています。ページングには CTE を使用しています。
全文 CONTAINSTABLE を使用する場合、CTE は実行されず、エラーが生成されます。
これが私の非動作コードです-
WITH results AS (
SELECT ROW_NUMBER() over (ORDER BY GBU.CreateDate DESC ) as rowNum,
GBU.UserID,
NULL AS DistanceInMiles
FROM User GBU WITH (NOLOCK)
WHERE 1=1
AND GBU.CountryCode IN (SELECT [Value] FROM fn_Split('USA',','))
AND GBU.UserID IN (SELECT [KEY] FROM CONTAINSTABLE(VW_GBU_Search, *, 'COMPASS'))
)
SELECT * from results
WHERE rowNum BETWEEN 0 and 25
CONTAINSTABLE 行をコメントアウトすると、ステートメントが実行されます。(WITH ではなく) SELECT ステートメントのみを実行すると、ステートメントは正常に実行されます。
これで得られる役に立たないエラーは次のとおりです。
メッセージ 0、レベル 11、状態 0、行 0 現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。メッセージ 0、レベル 20、状態 0、行 0 現在のコマンドで重大なエラーが発生しました。結果がある場合は、破棄する必要があります。
助言がありますか?