gpt4 book ai didi

visual-studio-2017 - 重命名系统版本表 Visual Studio SQL 项目中的列

转载 作者:行者123 更新时间:2023-12-02 04:35:50 26 4
gpt4 key购买 nike

我希望让 Visual Studio 的 SQL Schema Compare 生成 delta SQL 以更新生产数据库,包括对具有系统版本控制的表(时态表)进行列重命名。

在 Visual Studio SQL 项目中使用重构确实会在重构日志文件中创建一个条目,并会为该重命名的字段生成正确的 sp_rename SQL。但是,关联的历史表不会重命名字段 - 它会进行删除和添加,一旦表中有实际数据,这将无法正常工作。此外,它还使表格彼此不同步。

也许我可以修改重构日志 XML 以指示它是一个附加了历史表的字段?下面的 XML 显示 Elementtype 是“SqlSimpleColumn”。还有其他我可以探索的选择吗?

系统:Visual Studio Community 2017SQL 服务器:Azure SQL 数据库 V12

  <Operation Name="Rename Refactor" Key="48b6ef58-988b-48bf-9606-4048b0c51bf2" ChangeDateTime="04/03/2017 21:19:32">
<Property Name="ElementName" Value="[dbo].[xyz2].[newafterreset]" />
<Property Name="ElementType" Value="SqlSimpleColumn" />
<Property Name="ParentElementName" Value="[dbo].[xyz2]" />
<Property Name="ParentElementType" Value="SqlTable" />
<Property Name="NewName" Value="[updateafterreset]" />
</Operation>

最佳答案

在系统版本控制的历史表上手动使用 sp_rename 会导致以下错误:

Msg 13759, Level 16, State 1, Procedure sp_rename, Line 316
Renaming a column failed on history table '<database name>.dbo.<table name>History' because it is not a supported operation on system-versioned tables.
Consider setting SYSTEM_VERSIONING to OFF and trying again.

你有可能按照它的建议去做吗?

关于visual-studio-2017 - 重命名系统版本表 Visual Studio SQL 项目中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43195740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com