sql-server – 无法在表格行中将“CO2”更新为“CO?”
发布时间:2021-05-17 22:46:18 所属栏目:MsSql教程 来源:网络整理
导读:鉴于此表: 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
鉴于此表: 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; (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |