1

我目前正在加载一个新的 sqlproj,其中包含在我们采用 SSDT 的项目过程中使用 RedGate SqlCompare 生成的自定义脚本。然而,我发现,相当烦人的是,SSDT 在 ScriptsIgnoredOnImport 文件中吐出了很多东西。

似乎有一些解决方法可以帮助 SSDT 完成工作。例如,删除 RedGate 放入的样板交易内容似乎有助于它对脚本进行排序。在存储过程的情况下,似乎将所有 ALTER PROCEDURE 命令更改为 CREATE PROCEDURE 会导致 SSDT 检出旧文件并用新文件覆盖它,这正是我想要的。

但是,对于任何涉及 DROP 语句(表、过程;任何东西)的事情,我都无法简单地删除文件。在清理约 1000 个对象时,我无法考虑任何涉及手动操作的事情。

因此,现在我已经诉诸于使用 powershell 撕开 ScriptsIgnoredOnImport 文件,并tf delete在与 DROP PROCEDURE 匹配的每一行上调用,但这确实是一个粗制滥造的(更不用说运行缓慢的)解决方案。

我真的更愿意学习如何让 SSDT 删除东西。它只是不支持通过脚本导入删除对象吗?

4

1 回答 1

2

您是否尝试过从您的数据库与项目进行 SQL 模式比较?这应该可以让你轻松放下一堆物体。(遗憾的是,通过导入删除对象不起作用。ALTER 语句也不起作用。)如果这是一次性任务,我可能会构建一个本地数据库,在其上运行 Red-Gate 脚本,然后将其与用于创建/更新/删除对象的 SQL 项目。如果这是持续的,那将需要一个不同的解决方案,但这至少可以让你开始。

于 2013-08-05T18:00:08.837 回答