首页 MsSql教程 sql-server – 无法在表格行中将“CO2”更新为“CO?”

sql-server – 无法在表格行中将“CO2”更新为“CO?”

鉴于此表:

CREATE TABLE test (
    id INT NOT NULL,description NVARCHAR(100) COLLATE Modern_Spanish_CI_AS NOT NULL
);
INSERT INTO test (id,description) VALUES (1,'CO2');

我意识到我无法解决排版问题:

SELECT * FROM test WHERE id = 1;
UPDATE test SET description = 'CO?' WHERE id = 1;
SELECT * FROM test WHERE id = 1;

因为更新匹配但没有效果:

id          description
----------- -----------
1           CO2

(1 affected rows)

(1 affected rows)

id          description
----------- -----------
1           CO2

(1 affected rows)

就好像SQL Server确定的那样,因为2显然只是一个很小的2,所以最终值不会改变,因此不值得改变它.

有人可以对此有所了解并可能建议一个解决方法(除了更新中间值)?

解决方法

下标2不是varchar字符集的一部分(在任何排序规则中,不仅仅是Modern_Spanish).所以使它成为一个nvarchar常量:

UPDATE test SET description = N'CO?' WHERE id = 1;

关于作者: dawei

【声明】:乐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

热门文章