小编Pat*_*ers的帖子

SQL Server CONTAINS谓词 - 使用列值作为<contains_condition>

我在重写使用CONTAINS谓词的现有流程时遇到问题.现有的进程正在使用a CURSOR,但它确实很慢,并且随着插入更多数据而变慢.

我编写了一个包含两个表的简单示例(下面的代码) - 一个是全文索引,另一个是列,用于标识CONTAINS从第一个中选择行的条件.

当前存储过程使用a CURSOR循环遍历第二个表,设置@filter变量,然后用于CONTAINS定位匹配的第一个表中的行.问题是它运行了几个小时,而且情况越来越糟.

为了加快这个过程,我尝试CONTAINS直接在列值上使用谓词,而不是经历光标的痛苦......但是我得到了一个语法错误.我的例子如下.

我试图实现一个CROSS APPLY,我也尝试写一个用户定义的函数(fnCONTAINS)没有运气.

IF ( object_id('Players') IS NOT NULL )
  DROP TABLE Players

go

IF ( object_id('TeamNeeds') IS NOT NULL )
  DROP TABLE TeamNeeds

go

-- create fulltext catalog ft as default
go

CREATE TABLE Players
  (
     PlayerID        INT IDENTITY(1, 1),
     PlayerName      VARCHAR(20),
     PlayerPositions VARCHAR(60)
  )

go

CREATE UNIQUE INDEX IXPlayerID
  ON Players( PlayerID ) …
Run Code Online (Sandbox Code Playgroud)

sql-server contains

8
推荐指数
1
解决办法
835
查看次数

标签 统计

contains ×1

sql-server ×1