【问题标题】:Insert subscript value in sql server varchar column在 sql server varchar 列中插入下标值
【发布时间】:2017-05-20 21:38:40
【问题描述】:

我有一个有 2 列的表格。


id:号码, 名称:varchar(50)


我想在名称字段中插入氧气 (O2) 值,2 作为下标。 当我插入时,它无法将其保存为下标值。

一种解决方案是将名称的数据类型更改为 nvarchar。 但我正在寻找更好的解决方案,所以我不需要更改表格。

【问题讨论】:

  • Unicode 字符存储在nvarchar,例如:符号、印地语、汉字等

标签: c# sql-server subscript


【解决方案1】:

我认为 char/varchar 字段中只允许使用 ASCII 和扩展 ASCII。 但是如果你使用 nchar/nvarchar 那么你可以使用任何字符。

【讨论】:

    【解决方案2】:

    最好的解决办法是将列改为nvarchar(50)

    如果您坚持使用varchar(50),则可表示字符的底层集合取决于您的排序规则。一般来说,排序规则是指排序顺序,例如Ø 是否与O 一起排序或作为Z 之后的单独字母排序,它是早于还是晚于Å。但排序规则也与基础字符集(可表示字符集)相关。试试查询:

    select TABLE_CATALOG, TABLE_NAME, COLUMN_NAME,
        DATA_TYPE, CHARACTER_SET_NAME,
        COLLATION_NAME, COLLATIONPROPERTY(COLLATION_NAME, 'CodePage') as CODE_PAGE
    from INFORMATION_SCHEMA.COLUMNS
    where COLUMN_NAME = N'name'
    

    并注意您的专栏中的CHARACTER_SET_NAMECOLLATION_NAMECODE_PAGE。你有什么?

    我非常怀疑它是否能正确代表'O₂'


    您可以选择一些约定,例如使用类似 HTML 的结构,例如 'O<sub>2</sub>',或类似 TeX 的结构,例如 'O_2'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多