SQL Server数据库项目

时间:2017-12-04 13:33:18

标签: sql-server sql-server-data-tools dacpac

我想在Azure SQL Server中使用数据库项目进行脚本部署,我不想导入完整的数据库。我只想将数据库项目用于delta脚本。我添加了一个项目并包含一个脚本文件,其中没有包含create table语句的构建操作,我正在发布项目,它正在成功完成但是create语句没有执行。这有什么不对?还有其他办法吗?

1 个答案:

答案 0 :(得分:2)

TLDR:将构建操作设置为“Post Deployment Script”。

长:

SSDT中发生的情况是,所有具有“Build”构建操作的文件都内置在数据库应该是什么样的模型中。当部署发生时,将模型与目标数据库进行比较,如果有任何更改,则生成一个更改脚本,然后可选地进行部署。

如果您有任何标记为部署前或部署后脚本的文件,则它们会被添加到更改脚本中,或者作为部署的一部分运行。

如果你有任何构建动作为“无”的文件,那么SSDT会忽略它们,你可以放任何东西,甚至是驴的ascii图片,项目仍然会构建和部署(显然你的ascii驴赢了' t部署到任何地方)。

如果您只想使用SSDT进行部署,只需将构建操作设置为部署前或部署后,它就会包含在内。这很奇怪,要么不使用SSDT,要么使用SSDT并将整个数据库的模型放在那里。

就个人而言,我会正确使用SSDT并实现梦想。