我正在加载一个新的sqlproj,其中包含在项目过程中使用RedTate SqlCompare生成的自定义脚本,因为我们采用了SSDT。但是我发现,相当恼人的是,SSDT在ScriptsIgnoredOnImport文件中吐出了很多东西。
似乎有一些解决方法可以帮助SSDT完成其工作。例如,删除RedGate放入的样板事务似乎有助于它对脚本进行排序。在存储过程的情况下,似乎将所有ALTER PROCEDURE命令更改为CREATE PROCEDURE会导致SSDT检出旧文件并用新文件覆盖它,这就是我想要的。
然而,对于涉及DROP语句的任何事情(表格,程序;任何事情),我不能在我的生活中让它简单地删除文件。当谈到清理~1000个物体时,我无法考虑任何涉及手动操作的事情。
因此,现在我已经使用powershell撕掉了ScriptsIgnoredOnImport文件,并在与DROP PROCEDURE相匹配的每一行上调用了tf delete
,但这真是一种伪劣(更不用说痛苦的慢 - 运行)解决方案。
我真的很想学习如何让SSDT删除东西。它只是不支持通过脚本导入删除对象吗?
答案 0 :(得分:2)
您是否尝试过根据项目对数据库进行SQL架构比较?这应该可以让你轻松地删除一堆对象。 (遗憾的是,通过导入删除对象不起作用。也没有ALTER语句。)如果这是一次性任务,我可能会构建一个本地数据库,在其上运行Red-Gate脚本,然后将其与用于创建/更新/删除对象的SQL项目。如果这种情况仍在继续,那将需要一个不同的解决方案,但这至少可以让你开始。