代码之家  ›  专栏  ›  技术社区  ›  AJF

数据层导出到BacPac失败

  •  0
  • AJF  · 技术社区  · 7 年前

    我需要导出整个SQL Server数据库——模式、表、数据等,并尝试使用以下方法。

    使用管理员凭据登录SSMS,找到相关数据库,右键单击数据库,选择任务>>导出数据层应用程序。然后在服务器上选择一个位置来保存文件。bacpac文件,目的是导出到另一个网络上的另一台服务器。该过程启动正常,但随后失败,错误报告中有数百个错误,

    “错误SQL71562:验证元素[dbo]。[capt_blockperiod]:触发器[dbo]。[capt_blockperiod]对对象[master]。[dbo]。[sysprocesses]。[hostname]的引用未解析。从此平台创建包时不支持外部引用”

    我该如何解决这些问题而不必逐一检查?是否有其他方法可以导出整个数据库以避免这些问题?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Killer Queen    7 年前

    尝试在控制台中生成bacpac

    cd C:\Program Files (x86)\Microsoft SQL Server\<SQL_VERSION>\DAC\bin
    
    sqlpackage.exe /a:Export /ssn:myServer /sdn:myDatabase /tf:C:\<MY_PATH>\myBacpac.bacpac
    

    如果登录用户正在执行脚本,则将使用集成的Windows身份验证。因此无需指定用户名或密码。

    你确定是bacpac而不是dacpac?

    对于dacpac:

    cd C:\Program Files (x86)\Microsoft SQL Server\<SQL_VERSION>\DAC\bin
    sqlpackage /Action:Extract /SourceDatabaseName:"MyDatabase" /SourceServerName:localhost /TargetFile:"C:\SomeDirectory\MyDatabase.dacpac"