服务器安装 SQL Server 服务的时候使用了默认的排序规则 Chinese_PRC_CI_AS,而在创建用户数据库时使用的排序规则为 Chinese_PRC_BIN ,这样在用户数据库中编写存储过程创建临时表的时候,临时表会被创建到系统数据库 tempdb 中,于是在两个数据库中的表做关联查询的时候遇到排序规则冲突的问题,当然解决这个问题可以在写SQL语句关联表时指定列的排序规则,但这样每次写SQL都很麻烦,于是我想为何不把 tempdb 数据库改成和用户数据库一样的排序规则。
最简单暴力(实际不简单)的方法就是重装 SQL Server 服务实例,安装时重新指定服务器默认排序规则,但这样改动太大,从网站找了半天最终只找到一个贴子有人发了这个方法,经测确定方法有效,很好用,分享给需要的人(大多朋友用不到)。
找另一台sql服务器,其中model或tempdb数据库的排序规则刚好是你想要的(或者干脆自己在虚拟机新装一个SQL服务,排序规则要设置为需要的),前提是两台SQL服务器版本号必须完全一致,备份model数据库,拷贝过来,在这台服务器上还原model数据,然后重启这台sql,你会发现tempdb排序规则变成另外一台服务器的model的了。