|
■No80254 (ぽっぽ さん) に返信
> 日本語を入力する -> ?となり文字化けしている
データベースの照合順序が、Japanese 系になっているかどうか確認してみてください。
『select name,collation_name from sys.databases』のクエリーで調査できます。
たとえば、「Latin1_General_CI_AS」や「SQL_Latin1_General_CP1_CI_AS」などの場合、
コード ページ 1252 相当になるので、英語圏の文字しか扱えない事になります。
平仮名やカタカナを扱いたいのであれば、この値が
「Japanese_CI_AS」や「Japanese_Bushu_Kakushu_100_CS_AI_KS_WS」や
「Japanese_Unicode_BIN2」などといった『日本語圏の照合順序』である必要があります。
> どうすれば日本語入力できるでしょうか。
LocalDB インスタンスの照合順序は
SQL_Latin1_General_CP1_CI_AS 固定で、変更できません。
SELECT CONVERT (varchar, SERVERPROPERTY('collation'));
そのため照合順序を特に指定していない場合、
新しいデータベースも英語版になります。
ただし、データベース レベル、列レベル、式レベルの照合順序は
サポートされています。(利用可能な照合順序は SQL Server バージョンに依存)
たとえば
CREATE TABLE [Table1]
( [Id] INT NOT NULL PRIMARY KEY
, [Col1] VARCHAR(10)
, [Col2] VARCHAR(10) COLLATE Japanese_90_BIN2
, [Col3] VARCHAR(10) COLLATE Japanese_CI_AS
, [Col4] VARCHAR(10) COLLATE Japanese_CS_AS_KS_WS
);
とすれば、この Table1 は Col1 は日本語非対応ですが
Col2〜Col4 は日本語対応になります。
あるいは、明示的に照合順序を指定した包含データベースを作成する事もできます。
CREATE DATABASE TEST
ON PRIMARY (
NAME=TEST_DATA,
FILENAME = 'C:\YourFolder\TEST.mdf'
)
LOG ON (
NAME=Test_log,
FILENAME = 'C:\YourFolder\TEST_LOG.ldf'
)
COLLATE Japanese_CI_AS
;
|