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

Visual studio 2017 重命名系统版本表Visual Studio SQL项目中的列,visual-studio-2017,temporal,sqlproj,refactoring-databases,Visual Studio 2017,Temporal,Sqlproj,Refactoring Databases,我想让VisualStudio的SQL模式比较生成增量SQL来更新生产数据库,包括在系统版本控制为on的表(临时表)上重命名列 在VisualStudioSQL项目中使用重构确实会在重构日志文件中创建一个条目,并为该重命名字段生成正确的sp_rename SQL。但是,关联的历史记录表没有重命名字段-它执行拖放操作,一旦表中有实际数据,这将无法正常工作。此外,它还使得表格彼此不同步 也许我可以修改refactorlog XML以表明它是一个附加了历史表的字段?下面的XML显示Elementtyp

我想让VisualStudio的SQL模式比较生成增量SQL来更新生产数据库,包括在系统版本控制为on的表(临时表)上重命名列

在VisualStudioSQL项目中使用重构确实会在重构日志文件中创建一个条目,并为该重命名字段生成正确的sp_rename SQL。但是,关联的历史记录表没有重命名字段-它执行拖放操作,一旦表中有实际数据,这将无法正常工作。此外,它还使得表格彼此不同步

也许我可以修改refactorlog XML以表明它是一个附加了历史表的字段?下面的XML显示Elementtype为“SqlSimpleColumn”。我还有其他选择吗

系统:Visual Studio社区2017 SQL server: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.
Msg 13759,16级,状态1,程序sp_重命名,第316行
重命名历史记录表“.dbo.history”上的列失败,因为它不是系统版本表上支持的操作。
考虑将SypSyValuePosits设置为关闭并再次尝试。

您是否可以按照建议执行操作?

是的,您可以在更改表之前关闭系统版本控制。 ALTER TABLE[dbo].[TABLE\U NAME]集合(系统版本控制=OFF) 去

这将允许您对表进行更改。 注意:一句警告的话-当您在系统版本(临时)表上执行sp_重命名以重命名列时,它会破坏该实体的版本历史记录