我正在测试将我们的数据库从 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 行,语句就会执行。如果我只运行 SELECT 语句(而不是 WITH),则该语句执行得很好。
我得到的无用错误是:
消息 0,级别 11,状态 0,行 0 当前命令发生严重错误。结果,如果有的话,应该丢弃。Msg 0, Level 20, State 0, Line 0 当前命令发生严重错误。结果,如果有的话,应该丢弃。
有什么建议么?