You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2019报错‘Invalid object name sys.sysrowsets’的解决方法咨询

解决SQL Server 2019中“Invalid object name sys.sysrowsets”错误
  • 核心原因:sys.sysrowsets是SQL Server的向后兼容系统视图,在2019版本中已被标记为过时,且默认仅对拥有VIEW SERVER STATE权限或属于sysadmin固定服务器角色的账号可见。普通权限账号直接查询会报对象不存在的错误。

  • 解决方法1:授予必要权限(若需继续使用旧视图)
    如果你必须依赖sys.sysrowsets,先给当前登录账号授权(替换[你的登录账号]为实际账号):

    GRANT VIEW SERVER STATE TO [你的登录账号];
    

    授权后重新执行查询,即可正常访问该视图。

  • 解决方法2:使用官方推荐的替代视图
    微软早已不建议使用sys.sysrowsets,推荐用以下现代系统视图替代,功能更完善且无需特殊服务器级权限(仅需目标数据库的查询权限):

    • 查询表分区、行数等信息 → 用sys.partitions:
      -- 示例:查看指定表的分区及行数
      SELECT 
          OBJECT_NAME(p.object_id) AS 表名,
          p.partition_id,
          p.rows AS 分区行数,
          p.data_compression_desc AS 压缩类型
      FROM sys.partitions p
      WHERE p.object_id = OBJECT_ID('dbo.你的表名');
      
    • 查询存储分配单元信息 → 用sys.allocation_units:
      -- 示例:查看分配单元的存储使用情况
      SELECT 
          au.container_id,
          au.type_desc AS 分配单元类型,
          au.total_pages AS 总页数,
          au.used_pages AS 已使用页数
      FROM sys.allocation_units au;
      
  • 额外提醒:如果数据库是从旧版本升级到2019的,建议尽早迁移到新视图,避免后续SQL Server版本彻底移除过时视图导致代码失效。

内容的提问来源于stack exchange,提问作者Эльфия Валиева

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:35:19