none
SQL Server表记录不显示字符串? RRS feed

  • 问题

  • 本人是SQL Server新手,现阶段在学习表记录的添加和查询。很奇怪的是我输入的字符串莫名变成了“???”,而Sname属性又有约束,导致表内不能同时出现两个字或三个字的人名。如何在不去除约束的条件下,让表记录显示汉字字符串?

    工具:SQL Server 2016 Enterprise

    2017年4月2日 5:13

答案

  • If you like to input Chinese characters to string columns, should use Unicode data type nchar instead of char and put N in front of string like N'...". Take look at Unicode in sql books online.
    • 已标记为答案 SerialCore 2017年4月10日 14:48
    2017年4月2日 16:14

全部回复

  • If you like to input Chinese characters to string columns, should use Unicode data type nchar instead of char and put N in front of string like N'...". Take look at Unicode in sql books online.
    • 已标记为答案 SerialCore 2017年4月10日 14:48
    2017年4月2日 16:14
  • Hi 稍微有点软,

     

    原因rmiao已经阐述了,第一点需要把数据类型改成nvarchar类型的,可以用nvarchar(20)替代,而且在输入数值的时候使用T-SQL:

     

    INSERT INTO 表名(列名)
        VALUES(N'中文字符')


    修改列的数据类型不能直接在当前列上修改,只能重新创建一个列,把数据迁移到新的列上然后删除原来的列。右击表名,点击Design,新建一个列(重新命名,比如原来的列是column01,命名为column02),将column01上的数据移到column02上,删除column01,再将column02命名为column01

     

    Best Regards,

    Teige

     


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年4月4日 6:51
    版主
  • Sorry for being late. I'll try to use these methods to solve the problem. Just one thing so strange that Express or Developer shows Chinese characters as char type, but problem comes with Enterprise.
    2017年4月10日 12:47
  • 谢谢回复,我也大概想明白是怎么回事了。因为问题是出在企业版,而快速版和开发者版没有这种问题,不知道这又是为什么。
    2017年4月10日 13:13