在SQL Server中,是否有可能拥有一个可以存储中文、韩文和欧洲字符的字段?我的中文字符只会变成?????
数据类型也是NVARCHAR
。
在SQL Server中,是否有可能拥有一个可以存储中文、韩文和欧洲字符的字段?我的中文字符只会变成?????
数据类型也是NVARCHAR
。
NVARCHAR
是适合此用途的类型 - 它使用2字节的Unicode存储所有内容。
需要注意的是,在SQL Server Management Studio中使用 NVARCHAR
字段时,必须绝对使用 N'....'
前缀!
如果使用以下代码:
INSERT INTO dbo.YourTable(NVarcharColumn)
VALUES('Some Chinese text here')
那么 SSMS 将会临时转换你指定的字符串文本为 VARCHAR
(非 Unicode!),因此你将失去任何 Unicode 编码的字符。
然而,如果你使用:
INSERT INTO dbo.YourTable(NVarcharColumn)
VALUES(N'Some Chinese text here')
(注意字符串字面量前的N前缀!) 如果有N前缀,SSMS将始终将所有内容视为Unicode,您的中文或韩文(或其他)特殊字符应该会被保留。
insert into [dbo].[tablename] (columnname)values(N'日本')