SQL Server数据工具忽略架构比较上的重构

时间:2015-01-08 16:59:46

标签: visual-studio-2012 sql-server-2012 sql-server-data-tools schema-compare refactoring-databases

我有一个看似完全相同的问题:SSDT Refactor Rename is ignored by the Schema Comparison script generation。实质上,SQL Server数据工具的重构组件不用于架构比较/更新。例如,不删除表的名称,而是删除具有旧名称的表,并创建具有新名称的表。不幸的是,我没有看到这个问题的公认答案。我发现了一个类似的问题,似乎是MSDN上同一个人提出的问题;见:Refactor Rename is ignored by the Schema Comparison script generation。同样,它似乎没有提出可接受的答案。我真的想弄清楚如何使这个功能工作。有没有人有想法?

1 个答案:

答案 0 :(得分: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。截断此表后,架构比较再次显示正确的重构。