当我们通过visual studio发布数据库项目时会发生什么

Viv*_*ekh 3 database visual-studio-2013 sql-server-data-tools

我一直在研究一个项目,里面有一个数据库项目,当我对脚本进行一些更改时,我常常发布该数据库.现在我注意到,当我发布数据库项目时,它首先构建并创建一个dacpac文件,然后在我选择目标数据库之后发布它.我很想知道dacpac文件在发布sql数据库时扮演的角色.当我试图阅读关于dacpac的pro和con时,我也找到了这个东西.这真的是那样的吗?

链接

DACPAC的最大问题与发布数据层应用程序以将版本更改从DAC推送到SQL Server的方式有关.这是通过创建具有临时名称的新数据库,在数据库中生成新对象,然后将所有数据从现有数据库移动到新数据库来完成的.传输完所有数据并运行发布后脚本后,将删除现有数据库,并为新数据库指定正确的名称.

Ste*_*een 5

dacpac文件是数据库项目的编译构建输出.它类似于从C#类库项目构建的.dll文件.您在数据库项目中定义的有关数据库的所有信息都存储在dacpac文件中,以及有关对象之间关系的信息.

发布dacpac文件时,将目标数据库与dacpac进行比较,该工具将确定要执行哪些T-SQL以使目标数据库与dacpac的定义匹配.

关于这篇文章,请注意SQL Server 2008 R2附带的数据层应用程序框架在很大程度上被重写/替换为SQL Server 2012,因此该文章虽然对于旧版本的数据层应用程序框架是正确的,但不是关于今天可用的工具是正确的.