我目前正在使用Team Foundation Server(TFS)针对数据库对象重新设计部门的源代码控制策略。基本上,我们目前没有在TFS中存储任何内容。我发现了SSDT,并且非常喜欢它们在Visual Studio中的集成,并认为它将使我们更容易过渡到TFS。
那么,SSDT能否根据我的SSDT项目的delta与我们服务器中的内容生成脚本?从我研究的内容来看,我只能生成一个完整的数据库脚本。
要求(请注意,我们的开发人员没有ddl访问权限):
我们的数据库环境目前是SQL Server 2008 R2。我的SSDT版本是最新的2013年6月发布的。
答案 0 :(得分:0)
是的,如果您从项目中进行发布,您几乎可以满足所有这些要求,尽管dacpac是作为流程的一部分构建的。模式比较和前/后部署脚本存储在dacpac中,发布读取“应该”对数据库中当前的内容。然后,它会生成所有必要更改的更改脚本,以使数据库与项目保持一致。
确保在重命名对象时使用Refactor / Rename - 这将减少表删除/重新创建操作。您可能需要小心“删除不在项目中的对象”选项。如果您没有注意确保生产服务器中创建的所有对象都在您的项目中,那么您可能会因为某人未将其签入而意外删除重要内容。
SQLPackage命令有一些命令行可以生成可以使用的更改详细信息报告和脚本。脚本需要通过SQLCMD或SQLCMD模式运行,但你绝对可以很容易地生成脚本。