如何将SSMS修改的SQL Server数据库同步至VS数据库项目(Git/VSTS)
同步SSMS数据库变更到Visual Studio数据库项目的实用方案
我日常也经常在SSMS里改库后同步到VS数据库项目,给你分享几个靠谱的操作方式,都是实际工作里验证过的:
方法一:用Visual Studio自带的Schema Compare工具(最常用)
VS的数据库工具集成了这个核心功能,操作起来很直观:
- 打开你的VS数据库项目,顶部菜单栏选
Tools > SQL Server > New Schema Comparison - 在弹出的对比窗口里,源选你在SSMS中修改过的那个SQL Server数据库(直接从下拉列表选或手动连接都行)
- 目标选你的Visual Studio数据库项目
- 点击
Compare,VS会自动扫描两边的Schema差异,把你在SSMS做的所有变更(比如新增表、修改字段、更新存储过程等)列出来 - 核对差异列表,勾选需要同步的项(可以精准控制单个对象),然后点
Update,VS就会把这些变更同步到你的数据库项目里 - 最后检查下项目里的文件和生成的脚本,确认没问题后,就能提交到Git仓库(VSTS)了
方法二:SSMS生成脚本手动更新(适合精细控制)
如果习惯自己把控脚本内容,这种方式更灵活:
- 在SSMS里右键修改过的数据库,选
Tasks > Generate Scripts - 跟着向导走,选择你要同步的具体对象(比如只选你改的那几张表、几个存储过程),脚本类型选
Schema only(只导结构不导数据) - 把生成的SQL脚本保存到本地,然后打开VS数据库项目,右键项目选
Add > Existing Item导入脚本,或者直接修改项目里已有的对应脚本文件 - 这种方式适合需要调整脚本细节的场景,但要注意和项目现有Schema保持一致,避免冲突
方法三:用SqlPackage.exe命令行(适合自动化/批量场景)
如果需要频繁同步或者要集成到CI/CD流程,可以用SSDT的命令行工具:
- 找到
SqlPackage.exe的路径(一般在C:\Program Files (x86)\Microsoft Visual Studio\<你的VS版本>\BuildTools\Sql\150\Bin这类目录下) - 执行以下命令,把源数据库的Schema提取并同步到项目对应的dacpac文件:
SqlPackage.exe /Action:Extract /SourceConnectionString:"Server=你的服务器名;Database=你的数据库名;Integrated Security=True;" /TargetFile:"你的VS项目路径\项目名称.dacpac" - 生成的
.dacpac文件可以直接导入VS项目,用来更新项目Schema - 这个方法可以写成脚本批量执行,适合团队协作里的自动化同步需求
额外提醒
- 同步前记得先拉取Git仓库的最新代码,避免本地项目和远程版本冲突
- 每次同步后一定要仔细核对项目里的变更,比如有没有误加多余对象、字段类型是否正确
- 如果是团队协作,同步前最好和队友确认下数据库变更内容,避免覆盖别人的修改
内容的提问来源于stack exchange,提问作者Benny2003
相关产品推荐
相关产品推荐

