0

我正在使用 SSDT2012 部署数据库项目。我有要填充的静态数据,但它位于 .csv 文件中。我将它添加到项目中,但看不到复制到服务器临时文件夹或类似文件夹的方法。我尝试添加

谢谢您的帮助!

编辑:我一直在研究部署贡献者,但它仍然不是解决方案。实际上需要让每个人都将贡献者复制到他们的机器上,并且必须维护它并修复它;这不是一个可取的方法。

4

1 回答 1

2

处理静态数据的推荐方法是在部署前或部署后脚本中使用合并语句:

http://blogs.msdn.com/b/ssdt/archive/2012/02/02/including-data-in-an-sql-server-database-project.aspx

2000 行相当多,但 sql 可以轻松处理。

手动将 2000 行 csv 放入合并语句显然会很痛苦,因此您可以使用 Sql 导入向导将其放入表中(基本上只是将其部署在某个地方),然后您可以部署 sp_generate_merge 来创建合并语句然后您可以放入您的部署后脚本:

https://github.com/readyroll/generate-sql-merge

如果您要使用合并语句,那么无论您是否自动生成脚本,我都建议您使用 Alex Whittles 的这篇博客来帮助理解它们的工作原理,因为它们一开始可能会让人感到困惑:

http://www.purplefrogsystems.com/blog/2011/12/introduction-to-t-sql-merge-basics/

最后,当您从静态数据中删除项目时,您应该小心,如果您在数据中还有其他带有外键的表,并且您删除了子表依赖于合并语句的项目将失败,因此您应该确保继续并在运行合并之前处理部署前/部署后脚本中的任何可能问题。这些应该是可重新运行的。

埃德

于 2015-03-31T06:04:33.483 回答