我遇到了与此处描述的问题看似相同的问题:架构比较脚本生成会忽略 SSDT 重构重命名 https://stackoverflow.com/questions/20082079/ssdt-refactor-rename-is-ignored-by-the-schema-comparison-script-generation。本质上,SQL Server Data Tools 的重构组件不适用于架构比较/更新。例如,不是重命名表,而是删除旧名称的表并创建新名称的表。不幸的是,我没有看到该问题的公认答案。我发现了一个类似的问题,似乎是同一个人在MSDN上问过;看:架构比较脚本生成会忽略重构重命名 https://social.msdn.microsoft.com/Forums/sqlserver/en-US/9fed9521-96af-4985-bafb-fdb4bd4b800e/refactor-rename-is-ignored-by-the-schema-comparison-script-generation?forum=ssdt。同样,看起来并没有提出可接受的答案。我真的很想弄清楚如何让这个功能发挥作用。有人有想法吗?
找出了这个问题的原因。我注意到,当与我的 SQL 数据工具项目和不同(但本质上相同)的数据库进行模式比较时,重构组件was事实上考虑到。我查看了生成的 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。截断该表后,模式比较再次显示了正确的重构。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)