【发布时间】:2010-12-21 05:25:22
【问题描述】:
我正在测试将我们的数据库从 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 A 当前发生严重错误 命令。结果,如果有的话,应该 被丢弃。消息 0,级别 20,状态 0, Line 0 发生严重错误 当前命令。结果,如果 任何,都应该丢弃。
有什么建议吗?
【问题讨论】:
-
您需要突出显示代码行(如您的 SQL 语句),然后按编辑器工具栏上的“代码”按钮 (101 010)(或按键盘上的 Ctrl-K)以正确格式化和语法高亮那些代码部分!
标签: sql sql-server sql-server-2008 full-text-search containstable