小雨点点789 发表于 2017-12-14 12:58:19

SQL Server插入中文乱码

  如果数据库的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 .
  @C_HM nvarchar(128)
  AS
  INSERT INTO export
  ()
  values
  (@C_HM)
  在表格中,C_CCH为varchar类型。
页: [1]
查看完整版本: SQL Server插入中文乱码