如何在 SQL Server 2019 上解决此问题
- 使用错误的排序规则安装 SQL Server 2 个月前
- 恢复了来自 SharePoint 管理员的关于排序规则问题的报告
- Resolve problem with MSSQLTIPs resolve solution (Use Option # 2) Change default collation behavior after installation with this link
- CMD 以管理员身份运行
- 查找 SQL Server Binn 目录
运行这个:
sqlservr -m -T4022 -T3659 -s"MSSQLSERVER" -q"SQL_Latin1_General_CP1_CI_AI"
所有数据库(系统和新数据库)运行良好,排序规则已更改
但是,当创建新数据库时,尝试打开表时正确设置了数据库的排序规则Latin
,从对象资源管理器中引发了此错误,并且没有出现任何内容:
附加信息:执行 Transact-SQL 语句或批处理时发生异常。无法解决 SELECT 语句列 2 中发生的 UNION ALL 运算符中的“SQL_Latin1_General_CP1_CI_AS”和“Persian_100_CI_AI_SC_UTF8”之间的排序规则冲突。由于绑定错误,无法使用视图或函数 sys.all_columns。(Microsoft SQL Server,错误:451)
- 重新安装 SQL Server 是我的三重解决方案,我需要解决方案修复而无需重新安装。
我试图用更改模型数据库排序规则来解决。
我对打开的用户属性有这个问题,在安全>登录>sa右键单击属性并引发错误'无法显示请求对话框'我在数据库范围内没有这个问题。
问题是实例级排序规则(即“服务器”排序规则)与您正在使用的数据库的数据库级排序规则之间的排序规则不匹配。您的实例级排序规则是
Persian_100_CI_AI_SC_UTF8
,系统数据库的数据库级排序规则是SQL_Latin1_General_CP1_CI_AS
(嗯,至少根据错误消息;根据 SSMS 的屏幕截图,您的系统数据库正在使用SQL_Latin1_General_CP1_CI_AI
- 唯一的区别是_AS
vs_AI
- 这表明初始排序规则是SQL_Latin1_General_CP1_CI_AS
或执行了多次运行sqlservr.exe -q
,或者可能生成错误的数据库不在屏幕截图列表中,并且在执行后恢复sqlservr -q
)。此问题的原因可能是以下之一:
sqlservr.exe -q
以更改所有排序规则,但在转换数据库时失败。您需要检查运行时生成的日志消息sqlservr.exe -q
以查看它是哪一条,或者您可能需要简单地sqlservr.exe -q
再次运行才能查看。-q
该过程的最后一步是更改实例级排序规则,因此如果实例级排序规则与选项中指定的排序规则不匹配sqlservr.exe
,则它没有成功完成。请参阅我关于该方法的博客文章,以
sqlservr.exe -q
获取有关使用它时可能出错的各种事情的更多详细信息:更改 SQL Server 实例、数据库和所有用户数据库中的所有列的排序规则:可能出了什么问题?