解决方法
您需要为列使用NVARCHAR数据类型,VARCHAR数据类型只能用于非unicode字符.
如果要在数据类型中存储unicode字符,则应使用NVARCHAR数据类型,并且在将数据插入Column时,使用N前缀告诉sql server,传递的字符串中会有一些unicode字符.
使用VARCHAR DataType
- CREATE TABLE #Temp (Column1 VARCHAR(100))
- INSERT INTO #Temp VALUES('★')
- SELECT * FROM #Temp
结果
- ╔═════════╗
- ║ Column1 ║
- ╠═════════╣
- ║ ? ║
- ╚═════════╝
使用NVARCHAR DataType
- CREATE TABLE #Tempn (Column1 NVARCHAR(100) )
- INSERT INTO #Tempn VALUES(N'★') --<-- N prefix for Unicode Characters
- SELECT * FROM #Tempn
结果
- ╔═════════╗
- ║ Column1 ║
- ╠═════════╣
- ║ ★ ║
- ╚═════════╝