如果數據庫的Collocation是英文的,字段是varchar類型,向表中插入中文數據,會出現亂碼。
解決方法:
方法1. 修改varchar 為 nvarchar類型, 並在插入數據前加N,例如: insert into table_name(a) values (N'中文')
方法2. 如果不修改字段類型,還是varchar, 則需要修改數據庫的Collocation為 中文,參考
---------------------------------------------------------------------------------------------------------
還有一種,在建表時,指定某個字段的語言,
方法 COLLATE Chinese_PRC_CS_AS_WS
示例:
create table test
(
a varchar(255) COLLATE Chinese_PRC_CS_AS_WS NULL,
b varchar(255) COLLATE sql_latin1_general_cp1_ci_as NULL
)
測試:
insert test values('中文','中文')
插入后 字段 a 為 中文 ,b 為 ??
---------------------------------------------------------------------------------------------------------
若是使用存儲過程插入數據的話,需要將對應的參數類型改為nvarchar。
示例:
create PROCEDURE [dbo].[export_Create]
@C_HM nvarchar(128)
AS
INSERT INTO export
([C_CCH])
values
(@C_HM)
在表格中,C_CCH為varchar類型。
