6

SQL Server 2008 Express Edition を使用しており、その照合設定はデフォルトに設定されています。データベースに á 、â 、ã 、å 、ā 、ă 、ą 、ǻ などの特殊文字を保存したいのですが、次のような通常の文字に変換されます。 「あ」。SQL Server がそうしないようにするにはどうすればよいですか?

4

2 に答える 2

8

列が varchar(...) ではなく、nvarchar(...) 型を使用していることを確認してください。前者は Unicode、後者は ASCII です。

また、データベースの既定の照合順序が [アクセントを区別する] に設定されていること、および列がそのように格納されていることを確認してください。インスタンスの既定の照合順序を確認することもできます。これは、システム データベース (特に tempdb) の既定の照合順序に影響するためです。

于 2009-10-27T05:56:50.603 に答える
4

Rahul さん、これは SQL 2005 と 2008 で完全に動作する非常に単純なクエリです。

クエリ

DECLARE @t1 TABLE (
    Col1    nvarchar(30)
)

INSERT INTO @t1 VALUES (N'á ,â ,ã ,å ,ā ,ă ,ą ,ǻ')

SELECT * FROM @t1

結果

Col1
------------------------------
á ,â ,ã ,å ,ā ,ă ,ą ,ǻ

ここには特別なことは何もありません。デフォルトからの照合の変更はなく、単純な NVARCHAR 列のみです。

あなたは「データベースで直接クエリを実行しているだけだ」と言いました。このクエリを試して、同じ結果が得られるかどうかを確認できますか?

于 2009-10-27T18:12:35.857 に答える