我有一张桌子上有内容:
internalid foreignWord
1 បរិស្ថាន
2 ការអភិវឌ្ឍសហគមន៍及其模式:
CREATE TABLE [dbo].[CE_testTable](
[internalid] [int] IDENTITY(1,1) NOT NULL,
[foreignWord] [nvarchar](50) NOT NULL如果我跑:
SELECT TOP 1000 [internalid] ,[foreignWord] FROM CE_testTable where foreignWord = N'ការអភិវឌ្ឍសហគមន៍'我得到:
internalid foreignWord
1 បរិស្ថាន
2 ការអភិវឌ្ឍសហគមន៍这两行,它应该只返回一行与"ការអភិវឌ្ឍសហគមន៍“,即”社区发展“在柬埔寨。
这是一个NVARCHAR列,我选择N‘等?有什么想法吗?
发布于 2013-11-22 09:22:02
将校对更改为Latin1_General_100_CI_AS。
在创建表时,可以为每个列指定排序规则。
如果不指定排序规则,则列将具有与数据库相同的排序规则。
CREATE TABLE [dbo].[CE_testTable](
[internalid] [int] IDENTITY(1,1) NOT NULL,
[foreignWord] [nvarchar](50) collate Latin1_General_100_CI_AS NOT NULL
)SQL Fiddle
发布于 2013-11-22 08:51:25
在没有N的情况下尝试查询
SELECT [internalid],
[foreignWord]
FROM CE_testTable
WHERE foreignWord = 'ការអភិវឌ្ឍសហគមន៍'发布于 2013-11-22 09:47:42
我似乎无法按照我的要求执行SQL Server的操作。
看看来自Erland的评论,这就解释了我的情况。它存储的很好,我可以看到里面的行。但比较可能失败。他们做到了。所以这是一个设计级别问题。我不能在桌子上有不同的校对,所以我不能比较。对我来说,这不是一个问题,只是一个PK是错误的,我可以工作。
https://stackoverflow.com/questions/20140296
复制相似问题