You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Microsoft SQL Server Management Studio中自动生成含主键与次键的表架构?

实现SQL Server表架构(含主键、外键)自动生成的方法

嗨,刚上手SSMS的话,完全可以轻松生成你想要的这种表架构清单(包含所有表、主键以及关联的外键/依赖关系),给你分享几个实用的方法:

方法一:用系统视图查询生成结构化结果

这是最灵活的方式,直接运行下面的SQL脚本,就能得到清晰的表格结果,还能根据自己的需求调整输出格式:

SELECT 
    t.name AS 表名,
    pk.name AS 主键名称,
    c.name AS 主键列,
    fk.name AS 外键名称,
    rc.name AS 外键列,
    referenced_t.name AS 关联表名,
    referenced_c.name AS 关联表主键列
FROM 
    sys.tables t
LEFT JOIN 
    sys.indexes pk ON t.object_id = pk.object_id AND pk.is_primary_key = 1
LEFT JOIN 
    sys.index_columns pk_ic ON pk.object_id = pk_ic.object_id AND pk.index_id = pk_ic.index_id
LEFT JOIN 
    sys.columns c ON pk_ic.object_id = c.object_id AND pk_ic.column_id = c.column_id
LEFT JOIN 
    sys.foreign_keys fk ON t.object_id = fk.parent_object_id
LEFT JOIN 
    sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id
LEFT JOIN 
    sys.columns rc ON fkc.parent_object_id = rc.object_id AND fkc.parent_column_id = rc.column_id
LEFT JOIN 
    sys.tables referenced_t ON fkc.referenced_object_id = referenced_t.object_id
LEFT JOIN 
    sys.columns referenced_c ON fkc.referenced_object_id = referenced_c.object_id AND fkc.referenced_column_id = referenced_c.column_id
ORDER BY 
    t.name, pk.name, fk.name;

脚本说明:

  • 这个查询会列出所有表的主键信息,以及表上的外键关联关系(对应你提到的“次键”)
  • 如果某个表没有外键,对应外键相关的字段会显示为NULL,不影响整体查看
  • 你可以把查询结果导出成Excel,或者直接复制到文档里,格式清晰易读

方法二:用SSMS自带的数据库关系图生成可视化架构

如果你想要类似示例里的可视化架构图,SSMS自带的工具就能搞定:

  • 打开你要查看的数据库,找到左侧导航栏里的「数据库关系图」节点,右键点击选择「新建数据库关系图」
  • 在弹出的添加表窗口中,勾选需要查看的表并添加,SSMS会自动生成包含主键、外键关联的可视化图
  • 你可以拖拽调整表的布局,添加注释,还能保存这个关系图,以后随时打开查看

方法三:生成完整的数据库架构脚本

如果需要导出包含所有约束的完整架构文本,试试SSMS的脚本生成功能:

  • 右键你的数据库,依次选择「任务」→「生成脚本」
  • 跟着向导完成前期设置,在「设置脚本选项」步骤中,确保将「编写主键的脚本」「编写外键的脚本」等选项设为「True」
  • 最后选择将脚本输出到查询窗口或者本地文件,就能拿到包含所有表结构和约束的完整SQL代码了

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

火山引擎 最新活动