站长网 MsSql教程 sql-server – Transact-SQL查询中字符串前的N前缀

sql-server – Transact-SQL查询中字符串前的N前缀

请问,在Transact-SQL查询中,我应该何时在字符串前使用N前缀?我已经开始使用数据库了,我没有使用这样的查询得到任何结果 SELECT * FROM a_table WHERE a_field LIKE ‘%а_pattern%’ 直到我将模式更改为N’%а_pattern%’.我以前从来没有添加这个前缀,所

请问,在Transact-SQL查询中,我应该何时在字符串前使用N前缀?我已经开始使用数据库了,我没有使用这样的查询得到任何结果

SELECT * FROM a_table WHERE a_field LIKE '%а_pattern%'

直到我将模式更改为N’%а_pattern%’.我以前从来没有添加这个前缀,所以我很好奇. a_field被定义为nvarchar(255),但我认为原因是别的.

解决方法

以下文章提供了有关该问题的一些很好的信息.简短的回答是你正在使用的unicode列和非unicode字符串文字之间存在类型不匹配.从知识库文章看,省略N前缀在某些情况下可能仍然有效,但这取决于数据库的代码页和排序规则设置.这可能解释了行为的变化,如果您之前使用无前缀方法取得了成功.

https://support.microsoft.com/en-us/kb/239530

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jc/mssql/2021/0523/4223.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部