如何使SQL Server中的表与视图按字母顺序显示?
SQL Server表和视图随机显示的解决办法
先从这几个方向排查:
- 检查服务器/数据库的排序规则:SQL Server里对象的排序逻辑依赖排序规则,先查服务器级规则:
再查你使用的数据库规则:SELECT SERVERPROPERTY('Collation') AS ServerCollation;
如果用了非字典序的自定义规则,就可能导致列表无序。SELECT name, collation_name FROM sys.databases WHERE name = '你的数据库名'; - 确认工具的排序设置:虽然你说多个工具都有问题,但还是可以顺手查下每个工具的对象浏览器设置,有没有不小心开启了随机排序或者关闭了默认排序。不过跨工具都出问题,大概率是服务器端的原因。
- 测试系统视图的返回结果:SSMS这类工具都是从
sys.tables、sys.views这类系统视图读取对象列表的,默认这些视图不保证返回顺序,正常工具会自动添加排序逻辑。你可以手动运行这两个查询测试:SELECT name FROM sys.tables ORDER BY name; -- 手动排序应该能正常按字母排列 SELECT name FROM sys.tables; -- 如果这个返回乱序,说明工具没自动加排序,但正常工具都会添加
接下来试试这些修复手段:
- 修改数据库排序规则:如果排序规则确实不符合需求,可以修改数据库级的排序规则(修改服务器级规则需要重装或重建系统库,优先选择数据库级修改),操作前记得备份数据:
ALTER DATABASE 你的数据库名 COLLATE SQL_Latin1_General_CP1_CI_AS; -- 这是常用的字典序规则,可按需替换 - 手动强制工具排序:比如在SSMS中,右键点击“表”或“视图”节点,选择“排序方式”->“按名称排序”,强制工具按字母顺序显示。
内容的提问来源于stack exchange,提问作者Gary Thornton
相关产品推荐
相关产品推荐

