天天看點

SQL Server插入中文資料後出現亂碼

今天在做項目的過程中遇到如标題的問題,情況如下圖:

SQL Server插入中文資料後出現亂碼

資料庫使用的是SQL Server2012版本,建立表的腳本如下:

CREATE TABLE [dbo].[Type]

(

  [TypeId] INT NOT NULL PRIMARY KEY,

    [TypeName] NVARCHAR(50)NOT NULL,

    [Description] NVARCHAR(255) NULL,

    [CategoryId] INT NOT NULL DEFAULT 0

)

根據一些相關文檔提到的解決方案,需要包含中文資料的字段,一般定義為nchar/nvarchar資料類型。但實際應用中,即使這樣定義了資料庫表字段,也會産生亂碼。此時嘗試了另一種解決方案:即添加中文資料時, 在插入的中文字元前添加大寫字母N,腳本示例如下:

MERGE dbo.[Type] AS Target

USING (

  SELECT 0, N'其它', N'未定義消費類别', 0

  UNION

  SELECT 1, N'主食', N'米、面、油、鹽等', 1

  SELECT 2, N'副食', N'肉、菜、蛋、熟食等' , 1

  SELECT 3, N'餐飲', N'含堂食外送', 1

  SELECT 4, N'飲料', '', 2

經過驗證,應用此方案可以解決中文亂碼問題。

SQL Server插入中文資料後出現亂碼