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

Dan*_*bes 2 refactoring-databases schema-compare sql-server-2012 visual-studio-2012 sql-server-data-tools

我遇到了与此处描述的看似完全相同的问题:模式比较脚本生成忽略了SSDT重构重命名.实质上,SQL Server数据工具的重构组件不用于架构比较/更新.例如,不删除表的名称,而是删除具有旧名称的表,并创建具有新名称的表.不幸的是,我没有看到这个问题的公认答案.我发现了一个类似的问题,似乎是MSDN上同一个人提出的问题; 请参阅:重构重命名脚本生成将忽略重构重命名.同样,它看起来不像是一个可接受的答案.我真的想弄清楚如何使这个功能工作.有没有人有想法?

Dan*_*bes 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.截断此表后,架构比较再次显示正确的重构.