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

如何获取SQL Server数据库中的对象列表

获取SQL Server数据库对象列表的方法

开发完往生产环境迁移前,要核对全量对象避免遗漏触发器、存储过程这类容易忘的项,直接用下面两种方法即可,覆盖所有常见数据库对象类型:

方法1:查询系统视图(支持自定义筛选)

SQL Server 2005及以上版本通用,直接查询内置系统视图sys.objects就能拿到当前数据库下的所有对象明细,加个简单筛选就能过滤掉系统自带对象,只看自己开发的业务内容:

SELECT 
    name AS 对象名称,
    type_desc AS 对象类型说明,
    create_date AS 创建时间,
    modify_date AS 最后修改时间
FROM sys.objects
-- 过滤SQL Server系统内置对象,仅保留用户创建的业务对象
WHERE is_ms_shipped = 0
ORDER BY type_desc, name;

常见业务对象的类型标识对应关系:

  • P:SQL存储过程
  • TR:表/视图级DML触发器
  • U:用户自定义表
  • V:视图
  • FN:标量值函数
  • IF:内联表值函数
  • TF:多语句表值函数
  • PK:主键约束
  • F:外键约束
  • UQ:唯一约束

注意:sys.objects仅存储数据库级别的对象,服务器级触发器这类实例级对象不在这个视图范围内,需要单独执行下面的查询核对:

SELECT name, create_date, modify_date
FROM sys.server_triggers
WHERE is_ms_shipped = 0;

要做开发库、生产库的对象差异核对时,两边分别执行上述查询,导出结果后按对象名比对即可,基本不会出现漏项。

方法2:通过SSMS内置功能导出对象清单+部署脚本

不想手写查询的话,直接用SSMS自带的生成脚本功能就行:

  • 连接开发实例,定位到目标开发数据库
  • 右键点击数据库名,依次选择「任务」-「生成脚本」
  • 跟着向导走到「选择对象」步骤,勾选「编写整个数据库及所有数据库对象的脚本」
  • 后续步骤既可以查看全量对象清单,也能直接导出所有对象的创建脚本,直接用于生产部署,不用单独再核对漏项。

内容的提问来源于stack exchange,提问作者Massimo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:15:35