2

我遇到了与此处描述的问题看似相同的问题:SSDT Refactor Rename is ignored by the Schema Comparison script generation。本质上,SQL Server Data Tools 的重构组件不适用于架构比较/更新。例如,不是重命名表,而是删除具有旧名称的表并创建具有新名称的表。不幸的是,我没有看到该问题的公认答案。我发现了一个类似的问题,这似乎是由同一个人在 MSDN 上提出的;请参阅:架构比较脚本生成忽略重构重命名。同样,它看起来不像提出了一个可接受的答案。我真的很想弄清楚如何让这个功能发挥作用。有人有想法吗?

4

1 回答 1

5

找出了这个问题的原因。我注意到,在对我的 SQL Data Tools 项目和不同(但本质上相同)的数据库进行模式比较时,实际上考虑了重构组件。我查看了生成的 SQLCMD 脚本,在底部看到了很多看起来像这样的条目...... IF NOT EXISTS (SELECT OperationKey FROM [dbo].[__RefactorLog] WHERE OperationKey = 'ce3d4c93-c1c4-4967-9cd5-0048d1e7d22f') INSERT INTO [dbo].[__RefactorLog] (OperationKey) values ('ce3d4c93-c1c4-4967-9cd5-0048d1e7d22f')

我查看了出现问题的数据库,果然,在 SS MS 的系统表下,我找到了 dbo.__RefactorLog。截断此表后,模式比较再次显示正确的重构。

于 2015-01-08T19:44:52.113 回答