1

私は内容を含むテーブルを持っています:

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' などを選択していますか? 何か案は?

4

3 に答える 3

1

照合を に変更します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 フィドル

于 2013-11-22T09:22:02.990 に答える
0

SQL Server は私が求めていることを実行できないようです。

Erland Sommarskog からのコメントを見ると、これが私の状況を説明しています。正常に保存され、そこに行が表示されます。しかし、比較は失敗する可能性があります。彼らがやった。したがって、設計レベルの問題です。テーブルに異なる照合順序を設定することはできないため、比較できません。私にとってこれは問題ではなく、エラーが発生したのは PK だけだったので、回避できます。

于 2013-11-22T09:47:42.147 に答える