有关 SQL Server 中重音不敏感的问题 (Latin1_General_CI_AS)

2024-03-28

我们所有的数据库都是使用默认排序规则安装的(Latin1_General_CI_AS).

我们计划更改排序规则,以允许客户端不区分重音地搜索数据库。

问题:

  1. 不区分重音的数据库有哪些负面影响(如果有的话)?

  2. 不区分重音的数据库是否有任何性能开销?

  3. 为什么 SQL Server 排序规则的默认重音敏感;为什么有人希望默认区分重音?


说真的,改变数据库排序规则是一件非常痛苦的事情。请参阅 codeproject 中的此 HOWTO,然后在执行之前仔细考虑!这是简单的方法!

  • http://www.codeproject.com/Articles/302405/The-Easy-way-of-changing-Collat​​ion-of-all-Database http://www.codeproject.com/Articles/302405/The-Easy-way-of-changing-Collation-of-all-Database

首先,您只需指定作为搜索的一部分,就可以允许不区分重音的数据库搜索,而不必更改排序规则。

 select * from TableName
 where name collate Latin1_General_CI_AI like @parameter

简单如。然而,这将损害指数。

另一种方法是提供一个可以单独索引的计算字段。

    create table TableName(
    ix int identity primary key,
    name nvarchar(20) collate latin1_general_ci_as
    )
    go
    alter table TableName
    add  name_AI as name collate latin1_general_CI_AI
    go
    create index IX_TableName_name_AI
    on dbo.TableName(name_AI)

上面的示例将其放入表中,但您也可以创建索引视图。

    create view dbo.TableName_AI
    with schemabinding
    as 
    select ix,
    name collate Latin1_general_CI_AI as name
    from dbo.TableName
    go
    -- Need a unique clustered index first
    create unique clustered index IX_TableName_AI_Clustered on dbo.TableName_AI(ix)
    -- then the index for searching
    create index IX_TableName_AI_name on dbo.TableName_AI(name)

然后,对于不区分重音的搜索,请使用视图TableName_AI.

回答您的具体问题:

  1. 在不区分重音的数据库中,区分重音的搜索速度会较慢。

  2. 是的,但不是你会注意到的

  3. 确实如此。有些东西必须是默认的:如果你不喜欢它,就不要使用默认的!

    可以这样想:“Hard”和“Herd”不是同一个词。尽管它们听起来很相似,但一个元音差异就足够了。

    重音差异(a 与 á)介于大小写差异(A 与 a)和字母差异(a​​ 与 e)之间。你必须在某个地方划清界限。

    口音会影响单词的发音,并使其具有不同的含义,尽管我很难想出例子。我想这对于数据库中使用使用重音的语言的单词的人来说更有意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有关 SQL Server 中重音不敏感的问题 (Latin1_General_CI_AS) 的相关文章

  • C# 数据类型到 SQL Server 数据类型

    如何将 C 数据类型 转换 为 SQL Server 数据类型 SqlDbType是已知的 i e C gt String SQL Server gt N String 尝试这个 它是一个 Extension 类 因此您要在文件上添加以下方
  • 将一行字段设置为其他 2 个字段的乘积

    我有一个这样的SQL表结构 Id A B C D 1 1 5 6 25 2 2 10 5 25 3 3 7 4 25 4 1 6 5 26 5 2 10 5 26 6 3 8 3 26 我想写一个脚本 它将更新所有B 和 C 列在行中A 3
  • 是否可以让 SQL Server 将排序规则转换为 UTF-8 / UTF-16

    在我正在处理的一个项目中 我的数据存储在 SQL Server 中 并具有排序规则Danish Norwegian CI AS 数据通过 FreeTDS 和 ODBC 输出到将数据作为 UTF 8 处理的 python 一些字符 如 和 编
  • CSV 数据中的逗号

    我有一个 CSV 文件 我将其直接导入到 SQL Server 表中 在 CSV 文件中 每一列都用逗号分隔 但我的问题是我有一个 地址 列 并且该列中的数据包含逗号 所以发生的情况是 地址列的一些数据将转到其他列 并将导入到 SQL Se
  • SET IDENTITY_INSERT [表] ON 不起作用

    我想在指定 Id 的位置插入一些记录 以便将数据迁移到我想要保持现有关系完整性的位置 为此 我直接在 SSMS 中的表上运行以下命令 SET IDENTITY INSERT CRMTItem ON 然而 当我从 C 插入一个 Id 为 1
  • 在 SSIS 流中使用临时表失败

    我有一个 ETL 过程 可将约 40 个表从源数据库 Oracle 10g 提取到 SQL Server 2014 开发人员版 临时环境 我的提取过程 确定暂存中的最新行 从源中选择所有较新的行 将结果插入 TEMPTABLE 将 TEMP
  • 如何按月(“年”和“月”)对表进行分区并自动创建每月分区?

    我正在尝试按两者对表进行分区Year and Month 我将通过其进行分区的列是具有 ISO 格式 20150110 20150202 等 的日期时间类型列 例如 我有 2010 年 2011 年 2012 年的销售数据 我希望数据按年份
  • 通过 Plesk 面板托管 SQL Server 数据库时出现问题

    首先 我提供有关我的产品订阅的信息 我还订阅了一年的 Plesk Windows 托管 终极 订阅 此外我还订阅了一年的 SiteLock 我正在尝试使用 SQL Server 数据库托管 ASP NET 网站 但我很难做到这一点 首先 我
  • MS-sql 检索年龄最大的学生的成绩数据

    在此输入图像描述 https i stack imgur com mJ8aT png 在此输入图像描述 https i stack imgur com guYsU png 在此输入图像描述 https i stack imgur com 7
  • 如何查询最近7天的总计?

    我正在使用 SQL Server 2008 我想编写一个查询来提供给定天数的总活动量 具体来说 我想统计过去 7 天每天的总票数 我的桌子看起来像这样 VoteID VoteDate Vote BikeID 1 2012 01 01 08
  • SQL - 用 varchar 替换 is null 整数

    我正在尝试用新的列替换列varchar如果 select 语句中存在空值 则为字符串 personid ISNULL personid no person 我不想更新它 只是在查询结果中将值显示为 无人 但我收到一条错误消息 将 varch
  • 修改SQL Server中的默认值

    我正在尝试使用 SQL Server 2008 中的 SQL 语句更改列的默认值 我在很多地方找到了如何在创建表 添加列时设置默认值 但没有找到如何设置它 一旦列已经存在就修改它 这就是我可以用来在添加时设置它的内容 ALTER TABLE
  • SqlCommand返回值参数

    也许查看此代码的其他人能够告诉我为什么 returnID 始终为 0 我正在尝试从插入的记录中检索新的 ID public int AddToInventory int PartID int QtyOnHand int SpokenFor
  • 如何从 SQL Server 的表中获取列名?

    我想查询一个表的所有列的名称 我发现如何做到这一点 Oracle https stackoverflow com q 452464 419956 MySQL https stackoverflow com q 193780 419956 P
  • SQL Server 将 SP_EXECUTESQL 识别为对象而不是过程名称

    我在用DBContext Database SqlQuery
  • 从 PHP 执行 SQL Server 存储过程

    我尝试从 PHP 调用 SQL Server 存储过程 这是我的存储过程 CREATE procedure dbo tester id NVARCHAR MAX AS BEGIN DECLARE tab TABLE myxml XML IN
  • 如何从 SQL Server 2005 备份中恢复单个表?

    我已经使用常规 SQL Server 2005 备份命令进行了备份 有没有办法只恢复单个表 而不是整个数据库 将整个数据库恢复到另一台机器 或临时数据库 然后复制表对我来说似乎是最简单的
  • 为什么 Excel 有时会在工作表名称中添加 $?

    我有时但并非总是发现 Excel 会放置一个 位于工作表名称末尾 但在 Excel 中看不到 只有在尝试使用 C 将其导入 SQL Server 时才可见 我遇到过很多不同的情况 它保留了原始工作表 但也创建了第二个空的 隐藏 工作表 其中
  • SQL Server - 在设置 COLLATE Latin1_General_CS_AS 的情况下搜索不区分大小写

    家长提问 https stackoverflow com questions 50974562 sql server update to match and replace only exact words感谢 Iamdave 部分问题得到
  • 如何在 where 子句中使用别名? [复制]

    这个问题在这里已经有答案了 可能的重复 在 WHERE 子句中引用列别名 https stackoverflow com questions 8370114 referring to a column alias in a where cl

随机推荐

  • IE/Edge 不应用转换:转换为表格行

    当添加 CSS 转换时 例如transform translate 0px 45px 对于表行 Internet Explorer 已测试 10 和 11 和 Microsoft Edge 无法正确显示转换 使用一些简单的代码作为示例 ta
  • 使用 Python/Django 上传大文件

    我想知道通过使用 Django Python 的 Web 应用程序上传大约 4GB 大小的文件是否有任何影响 我记得过去使用 Java 进行流式上传是首选方法 但现在仍然如此吗 或者使用 Django Python 这样做是否完全安全 如果
  • SwiftUI 拖动手势坐标

    我正在尝试向我正在编写的应用程序添加评级系统 我的方法不太优雅 使用Stepper 如果可能的话 我想要一种交互式拖动方式来填充星级 我不确定是否DragGesture是我正在寻找的 这足够吗 另外 我不确定如何将坐标转换为正确的宽度以填充
  • 在活动之间传递媒体播放器对象

    我想知道如何在活动之间传递 MediaPlayer 对象 以便我可以在整个应用程序中保持恒定的声音播放 你不 通过MediaPlayer活动之间的对象 您需要访问MediaPlayer从一个习惯Service http developer
  • 如何将 data.table 融入人年中,并将年份后缀作为变量列?

    我有一个 data table 看起来像 PID vara90 vara91 vara92 vara93 varb90 varb91 varb92 varb93 1 1 2 1 45 77 Str1 Str3 Str3 Str1 2 2 6
  • JQuery-Mobile 可折叠展开/折叠事件

    有谁知道任何其他方法来捕获展开或折叠标记为的组件的事件data role collapsible 除了onclick其标头的事件 编辑 我想要某种事件 该事件还将提供有关组件的展开 折叠状态的信息 有自定义事件collapsible块 您可
  • React Native - launchPackager.command 无法打开

    我在构建 React Native ios 项目时遇到问题 错误信息 launchPackage command can t be opened because it is from an unidentified developer 知道
  • 如何充分替换 Sensor.TYPE_ORIENTATION (现已弃用)?

    我尝试了在互联网上找到的几个代码片段SensorManager getOrientation 相关讨论 没有一个能可靠地给出磁方位角 因为Sensor TYPE ORIENTATION做过 谁能分享一个工作代码Sensor TYPE ORI
  • 如何从Windows内核驱动程序获取设备实例路径?

    看一下这个示例 Windows 7 中的 USB 设备据报告具有设备实例路径 DevinstPath USB VID 1EAB PID 0501 7 25C389C1 0 1我确切地知道它对应于注册表中所谓的硬件密钥 hwkey 现在我的问
  • 为什么C中的结构体名称不是指针?

    数组名称是指针 函数名称也是指针 但结构名称不是指针 我想了解这种差异背后是否存在某种逻辑推理 或者它只是 C 语言的随机语法 数组很奇怪 他们的行为与其他类型不同 C was derived from an earlier languag
  • “AdjustJavacVersionArguments”任务意外失败

    我已经开始开发了Xamarin Forms应用在Visual Studio Enterprise 2015作为初学者 当我构建解决方案时 我收到如下错误 AdjustJavacVersionArguments 任务意外失败 严重性代码 说明
  • 验证英语文本中“a”和“an”的正确使用 - Python [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想创建一个程序 从文件中读取文本并指出 a 和 an 何时使用不正确 据我所知 一般规则是当下一个单词以元音开头时使用 an 但还应
  • Objective-C ARC 和传递 C 对象数组

    如果这是一个有点菜鸟的问题 我很抱歉 我知道我需要根据我的指示进行操作 不幸的是 我的截止日期已经到了 所以没有时间完成整本书的章节 所以我希望得到更有针对性的建议 我想在 C 数组中存储一些 Objective C 对象 我正在使用ARC
  • C# 上的 DrawString 文本太粗体

    我已经使用GDIDrawString绘制文本的方法 当程序运行时 屏幕上的文字看起来很好 但是一旦我将文件保存到图像中 字体就会比以前更粗 正常的会加粗 加粗的会更加粗 这该如何处理呢 public override void DrawTo
  • 如何在 Pug 文件中插入原始 HTML(不包括外部 HTML 文件)

    所以我想要的是将一些多行 HTML 放入 Pug 文件中 但在任何地方都找不到如何执行此操作 Example html head body div a href lala blabla a div p hihuhohoo Pug text可
  • 在本地网络中推送通知

    我需要在无法访问 Internet 的本地网络中使用我自己的服务器来实现 Android 和 iOS 的推送通知 更准确地说 我的用户将拥有一个移动应用程序 Android 和 iOS 它将通过无线网络连接到本地服务器 该网络不会有任何 I
  • Josh Smith 的 MVVM 示例中的视图是如何构建的?

    作为 WPF 和 MVVM 的新手 我正在学习Josh Smith 关于 MVVM 模式的文章 http msdn microsoft com en us magazine dd419663 aspx以及随附的示例代码 我可以看到该应用程序
  • AWS-Lambda 可以使用调用 C 的 Python 吗?

    我有一个进行图像比较的 C 库和调用它的 Python 我在 AWS Lambda 功能列表中没有看到 C 或 C 运行时 然而 Python 本身不是调用 C 的吗 我以为翻译其实是C 我们可以在 AWS Lambda 上运行从 Pyth
  • RESTful WCF Web 服务 POST 问题

    我无法将参数传递给 wcf web 服务 我的网络方法 OperationContract WebInvoke Method POST ResponseFormat WebMessageFormat Json UriTemplate pla
  • 有关 SQL Server 中重音不敏感的问题 (Latin1_General_CI_AS)

    我们所有的数据库都是使用默认排序规则安装的 Latin1 General CI AS 我们计划更改排序规则 以允许客户端不区分重音地搜索数据库 问题 不区分重音的数据库有哪些负面影响 如果有的话 不区分重音的数据库是否有任何性能开销 为什么