Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在DacPac中包含数据_Sql Server_Visual Studio 2012 - Fatal编程技术网

Sql server 如何在DacPac中包含数据

Sql server 如何在DacPac中包含数据,sql-server,visual-studio-2012,Sql Server,Visual Studio 2012,在Sql Server Data Tools for Visual Studio中,可以创建Sql Server项目并导入数据库的结构。这很有效 也可以导入数据吗?例如,假设我有一个包含多种类型的类型表。我希望在Sql Server项目中包含此数据,因此当我发布它时,它也会发布数据 我能想到的最接近的方法是使用SQLServer对象资源管理器为数据创建一个脚本,然后手动将该脚本添加到项目中 当我看到SQLServer数据工具的演示时,我展示了发布一个项目,然后使用复制粘贴将数据导入数据库。当然还

在Sql Server Data Tools for Visual Studio中,可以创建Sql Server项目并导入数据库的结构。这很有效

也可以导入数据吗?例如,假设我有一个包含多种类型的类型表。我希望在Sql Server项目中包含此数据,因此当我发布它时,它也会发布数据

我能想到的最接近的方法是使用SQLServer对象资源管理器为数据创建一个脚本,然后手动将该脚本添加到项目中

当我看到SQLServer数据工具的演示时,我展示了发布一个项目,然后使用复制粘贴将数据导入数据库。当然还有更好的办法

编辑 几年后,我终于明白了这一点:出口有两种类型:1。DACPAK-仅包括结构2。BACBAK包括数据和结构


您可以从SSMS中创建:1。DACPAK:选择您的数据库,右键单击任务->提取数据层应用程序。2.选择database,右键单击Tasks->Export Data Tier App。

这并非如您所要求的那样来自Visual Studio,但可能是一种解决方法。如果您的数据库存在于开发服务器中,那么您可以使用
导出
提取
操作:

用于出口

默认情况下,所有表的数据都将包含在.bacpac文件中。

SqlPackage.exe导出操作将实时数据库从SQL Server或Windows Azure SQL数据库导出到BACPAC包(.BACPAC文件)。默认情况下,所有表的数据都将包含在.bacpac文件中。或者,您可以仅指定要为其导出数据的表的子集。导出操作的验证可确保Windows Azure SQL数据库与完整的目标数据库的兼容性,即使为导出指定了表的子集

您可以导入您的
bacpac
文件

用于摘录

使用用户表数据生成DACPAC

sqlpackage.exe /action:Extract /TargetFile:"test.dacpac" 
    /sourceDatabasename:test 
    /sourceservername:".\testserver"
    /p:ExtractAllTableData=true
如果您不想使用SqlPackage.exe,这篇文章很旧,但它有三种解决方法:

1) 使用SSMS对象资源管理器中[Server]/Management/Data tier application/[application Name]节点下的SSMS“升级数据层应用程序…”向导重新部署相同的.dacpac文件。升级向导显示复选框选项以执行.dacpac文件中的部署前和/或部署后脚本。启用部署前和部署后脚本选项,然后执行升级将产生预期结果

2) 使用SSMS查询窗口、SQLCMD.exe或simliar手动执行DACPAC部署前和/或部署后T-SQL脚本文件。这要求DACPAC作者将部署前/部署后脚本与DACPAC文件一起提供。或者,可以使用Microsoft DacUnpac.exe实用程序或ZIP文件实用程序(将文件扩展名从.dacpac重命名为.ZIP后)提取部署前/部署后脚本


3) 使用MSBuild.exe(v4.0.30319.1或更高版本)或Visual Studio 2010 Premium SP1(或更高版本)部署“SQL Server数据层应用程序”项目文件。(例如:“msbuild/Target:Deploy-DeploymentDemo.dbproj”)。

几年后,我终于明白了这一点:有两种类型的导出:

  • DACPAC-仅包括结构
  • BACPAC,包括数据和结构
  • 您可以从SSM创建:

  • DACPAC:选择您的数据库,右键单击任务->提取数据层应用程序
  • BACPAC:选择数据库,右键单击任务->导出数据层应用程序

  • 没有评论,没有回复,风滚草。我没有找到关于这方面的进一步数据。如果我这样做,我会在这里张贴。也许吧?再见,格雷格,从2012年开始可以使用数据提取DACPAC(在SSDT的官方团队博客下搜索Adam Mahood从微软写的帖子)。主要区别在于DACPAK类似于数据库快照文件,可用于更新,而BACBAK更像是一个备份,用于创建新数据库。下面是一个使用名为T:sqlpack.exe/action:Extract/TargetFile的表数据创建DACPAC的工作示例:“E:\test.DACPAC”/sourceDatabasename:RonenDB/sourceservername:。\RonenServer/p:TableData=dbo.TOne更大的区别是,当数据库中有sql登录时,无法创建BACPAC。在这种情况下,应使用包含数据的DACPAC。键入:
    /p::ExtractAllTableData=true
    应为
    /p:ExtractAllTableData=true
    sqlpackage.exe /action:Extract /TargetFile:"test.dacpac" 
        /sourceDatabasename:test 
        /sourceservername:".\testserver"
        /p:ExtractAllTableData=true