You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将自定义词表中的词汇添加至SQL Server的停用词表?

SQL Server 2022批量导入自定义词汇到停用词表的正确姿势

为啥直接插系统表会报错

SQL Server的系统目录表(比如sys.fulltext_stopwords)压根不让直接做增删改操作,这是系统为了稳定性和安全性加的限制,所以你碰到的Msg 259报错是正常的,别纠结这个方式了。

正确操作步骤

不用一个个手动加,按下面的步骤来就能批量搞定:

1. 先创建自定义停用词列表(没有的话)

如果还没建自己的停用词列表,先执行这句:

CREATE FULLTEXT STOPLIST CustomStoplist;
GO

要是想基于系统默认的停用词列表来扩展,就改成:

CREATE FULLTEXT STOPLIST CustomStoplist FROM SYSTEM STOPLIST;
GO

2. 批量生成添加脚本并执行

从你的自定义词汇表Table_1里读数据,自动生成批量添加的SQL语句,然后执行:

DECLARE @SQL NVARCHAR(MAX) = N'';

SELECT @SQL += N'ALTER FULLTEXT STOPLIST CustomStoplist ADD STOPWORD ''' + REPLACE(stopword, '''', '''''') + ''';
'
FROM Table_1;

EXEC sp_executesql @SQL;
GO

这里的REPLACE是为了处理词汇里带单引号的情况,避免语法报错,别漏掉。

3. 把自定义停用词表绑定到全文索引

如果已经有全文索引了,得把它关联到新的停用词列表:

ALTER FULLTEXT INDEX ON 你的表名 SET STOPLIST = CustomStoplist;
GO

检查结果

执行下面的语句就能看到自定义停用词列表里的所有词汇了:

SELECT * 
FROM sys.fulltext_stopwords 
WHERE stoplist_id = (SELECT stoplist_id FROM sys.fulltext_stoplists WHERE name = 'CustomStoplist');
GO

内容的提问来源于stack exchange,提问作者Zahra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:16:04