首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server列数据类型和可索引

SQL Server列数据类型和可索引
EN

Stack Overflow用户
提问于 2018-02-10 12:37:15
回答 2查看 1.8K关注 0票数 0

我需要在SQL Server表中存储可变字符串长度,长度可以从0到10000个字符左右。

我需要使用like运算符%abcabc%过滤文本。

我想过使用varcharnvarchar,但我无法在此数据类型上创建索引。

请建议选择列数据类型的设计建议,并使列可索引。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-02-10 12:39:14

SQL Server将对like 'abc%'使用索引。但是,如果通配符是第一个,它将不使用索引。

如果您正在搜索完整的单词,那么您应该研究contains() and full text search

票数 3
EN

Stack Overflow用户

发布于 2018-02-10 15:35:45

我想过使用varchar或nvarchar,但我无法在此数据类型上创建索引。

这些是用于基于文本的信息的适当的数据类型。

不能创建索引的原因与数据类型本身无关-但是在SQL Server中,只有当索引中的列(或列集)具有最大值时,才能创建索引。的理论大小为900字节(或更少)。

这意味着不能对VARCHAR(1000) (或VARCHAR(MAX)) 进行索引。这个大小限制是您的问题,而不是数据类型。

解决方案:实际上只有一个解决方案:在要索引的列中使用较少的字节。或者,按照戈登的建议,查看SQL Server的全文索引功能。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48717281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档