我想将一些化学数据放入表格的列中。但在现有表中,下标显示为普通字符。其中一些被显示为问号。我应该做些什么来修复它?
当我输入此代码时
SELECT N'H' + NCHAR(0x2082) + N'O'
正确显示“H 2 O”
当我把它放入现有表格
时 INSERT INTO tab (id, label)
VALUES('100', N'H' + NCHAR(0x2082) + N'O')
它显示“H2O”不正确
答案 0 :(得分:5)
您需要在表格中使用NVARCHAR
/ NCHAR
列,而不是VARCHAR
/ CHAR
来存储unicode字符。
在下面的示例@table1
中,使用NVARCHAR
数据类型正确存储公式,而@table2
在VARCHAR
列中存储相同的值
DECLARE @table1 TABLE
(
ID int,
formula NVARCHAR(5)
)
DECLARE @table2 TABLE
(
ID int,
formula VARCHAR(5)
)
insert into @table1
SELECT '100', N'H' + NCHAR(0x2082) + N'O'
insert into @table2
SELECT '100', N'H' + NCHAR(0x2082) + N'O'
SELECT * FROM @table1;
SELECT * FROM @table2;