如果我有一张表格如下:
CREATE TABLE VarcharTest
(
foo VARCHAR(12)
)
列foo是数据类型varchar,因此不应接受unicode值。但是,如果我插入如下:
INSERT INTO VarcharTest VALUES ('abc') -- accepted
INSERT INTO VarcharTest VALUES ('я') -- not accepted
INSERT INTO VarcharTest VALUES (N'abc') -- accepted
INSERT INTO VarcharTest VALUES (N'я') -- not accepted
所有插入语句都按照我的预期进行,除非是第三个。 N前缀表示这是一个unicode字符串,但我们正在插入一个不接受unicode的VARCHAR列。
为什么SQL服务器会插入值?