Sqlserver和LocalDB创建数据库时默认字符集不一样

这几天写DEMO,所以一直用VS自带的LocalDB

开始用的很好,通过EF向里面插入数据没问题,但是直到我手写了一条Insert语句,发现出问题了

insert into Product values(newid(),'椪柑','',2.4,getdate());

怎么是问号?

这让人立马想到字符编码,像什么UTF-8、unicode这些,但是数据库中用的什么编码我也没接触过啊,况且我用了这么长时间SQLserver也没碰到这种问题啊

我想到了navicat这个数据库管理工具,我用它创建过几回mysql数据库,在创建的时候让我选择一个什么排序字段的这个东西,我想应该就是它了

 于是在网上搜索了数据库字符集,找到了查询数据库字符集的SQL语句

SELECT SERVERPROPERTY('Collation')

现在我们分别在Sqlserver和LocalDB执行看一下

LocalDB

Sqlserver

行,再百度到修改字符集的SQL语句

alter database TestDb  collate Chinese_PRC_CI_AS ;

然后再LocalDB中手动添加,汉字就能显示了

还有点问题,就是刚刚将字符集修改过来,但是你查询字符集,还是之前,不知道为什么,反正汉字显示不出来的问题算是解决了。

还好自己以前弄过两次mysql

原文地址:https://www.cnblogs.com/jinshan-go/p/10284226.html