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

如何快速将SQL Azure数据库复制到本地SQL Server 2014?

我之前处理过不少Azure到SQL Server 2014的迁移需求,给你几个亲测好用的快速方案,不用手动复制数据那么麻烦:

方案1:Azure Data Studio迁移向导(最省心)

Azure Data Studio对跨版本数据库迁移的兼容性处理比SSMS友好很多,步骤也简单:

  • 先安装Azure Data Studio(轻量免费,直接官网下载即可)
  • 打开后连接到你的SQL Azure数据库,右键点击数据库名,选择「迁移」→「迁移到SQL Server」
  • 跟着向导走:
    • 第一步选择本地SQL Server 2014实例作为目标
    • 向导会自动扫描Azure数据库里的对象,识别出DATABASE SCOPED CREDENTIAL这类SQL Server 2014不支持的对象,给出跳过或转换的选项
    • 勾选你要迁移的表、视图、存储过程等,同时可以直接勾选「迁移数据」,一次性搞定结构和数据
  • 这个方法几乎不用手动改代码,大部分兼容性问题工具会自动处理,成功率很高
方案2:用SqlPackage.exe降级bacpac

如果还是想用bacpac的方式,可以用SqlPackage.exe生成兼容SQL Server 2014的bacpac文件:

  • 找到对应版本的SqlPackage.exe(一般在C:\Program Files (x86)\Microsoft SQL Server\140\DAC\bin,140对应SQL Server 2014的DAC工具)
  • 打开命令提示符,执行以下命令(替换成你的Azure数据库信息):
    SqlPackage.exe /Action:Export /SourceConnectionString:"Server=tcp:你的Azure服务器名.database.windows.net,1433;Initial Catalog=你的数据库名;Persist Security Info=False;User ID=用户名;Password=密码;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" /TargetFile:"C:\temp\compatible.bacpac" /TargetCompatibilityLevel:120
    
    这里TargetCompatibilityLevel:120就是SQL Server 2014的兼容性级别
  • 导出完成后,再用SSMS的「导入数据层应用程序」导入这个降级后的bacpac,基本就能成功了
  • 如果还有个别不兼容对象,SqlPackage会在命令行里明确提示,你可以先在Azure数据库里临时移除这些对象再导出
方案3:SSMS生成带数据的脚本

要是你喜欢手动可控的方式,用SSMS的生成脚本功能也能搞定:

  • 打开SSMS连接到Azure数据库,右键数据库→「任务」→「生成脚本」
  • 在向导里:
    1. 选择「整个数据库」或者指定要迁移的对象
    2. 点击「高级」按钮,找到以下几个关键选项:
      • 「脚本数据」设为True(这样会把数据也生成到脚本里)
      • 「目标服务器版本」选择SQL Server 2014
      • 「脚本兼容性级别」选择SQL Server 2014
    3. 其他选项比如「脚本触发器」「脚本存储过程」按需勾选
  • 生成脚本后,打开本地SQL Server 2014的查询窗口,执行这个脚本就行
  • 如果碰到DATABASE SCOPED CREDENTIAL这类不兼容代码,直接在脚本里删掉或者注释掉再执行,比手动复制数据快多了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:13:14