VARCHAR列接受N前缀字符串

时间:2017-10-19 22:27:12

标签: sql unicode varchar nvarchar

如果我有一张表格如下:

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服务器会插入值?

0 个答案:

没有答案