我目前正在加载一个新的 sqlproj,其中包含在我们采用 SSDT 的项目过程中使用 RedGate SqlCompare 生成的自定义脚本。然而,我发现,相当烦人的是,SSDT 在 ScriptsIgnoredOnImport 文件中吐出了很多东西。
似乎有一些解决方法可以帮助 SSDT 完成工作。例如,删除 RedGate 放入的样板交易内容似乎有助于它对脚本进行排序。在存储过程的情况下,似乎将所有 ALTER PROCEDURE 命令更改为 CREATE PROCEDURE 会导致 SSDT 检出旧文件并用新文件覆盖它,这正是我想要的。
但是,对于任何涉及 DROP 语句(表、过程;任何东西)的事情,我都无法简单地删除文件。在清理约 1000 个对象时,我无法考虑任何涉及手动操作的事情。
因此,现在我已经诉诸于使用 powershell 撕开 ScriptsIgnoredOnImport 文件,并tf delete
在与 DROP PROCEDURE 匹配的每一行上调用,但这确实是一个粗制滥造的(更不用说运行缓慢的)解决方案。
我真的更愿意学习如何让 SSDT 删除东西。它只是不支持通过脚本导入删除对象吗?