0

今天我注意到我在 SQL Server 中的许多数据库之一有两个历史表,用于数据库中的所有系统版本表。

在此处输入图像描述

两个表的内容相似,但不相同。一个历史表的记录多于另一个。我试图关闭系统版本控制并重新打开。当我关闭它时,历史表消失(当然)。但是当我重新打开它时,我再次得到相同的两个历史表......??我用这个来试试这个:

ALTER TABLE ba SET (SYSTEM_VERSIONING = OFF);   
ALTER TABLE ba SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = dbo.ba_his , DATA_CONSISTENCY_CHECK = ON ));   
GO

奇怪的是,据我所知,它只发生在其中一个数据库上,但发生在该数据库中的所有系统版本表上。

我该如何纠正这种情况?我只想要一张历史表

==========

附加信息:第二个历史表似乎属于另一个数据库。如果我使用 SSMS 上下文菜单查询历史表,它会显示不同的数据库:

/****** Script for SelectTopNRows command from SSMS ******/ 
SELECT TOP (10000) [baID] ,[baTypeID] , etc... 
FROM [esx100-1888888P].[dbo].[ba_his] 

SELECT TOP (10000) [baID] ,[baTypeID] , etc... 
FROM [esx100-1246890P].[dbo].[ba_his] 

不知何故,另一个数据库的历史表显示在错误的数据库下面!这到底是怎么发生的?几周前我创建了数据库 esx100-1888888P。

我检查了数据库 esx100-1888888P,是的,它还显示了两个历史记录表。与其他数据库相同的表。不知何故,SQL-server 中的表数据库链接数据搞砸了。这是主数据库中的问题吗?– emphyrio 3 分钟前

4

1 回答 1

0

我删除了数据库 esx100-1888888P(幸好这只是一个测试数据库)。这解决了问题。我认为这是因为我将数据库 esx100-1246890P 的备份恢复为数据库 esx100-1888888P。我这样做是为了做一些测试。不知何故,这种恢复导致了这个奇怪的问题。看起来这是 MS 没有正确解决的问题,当一个数据库被恢复为另一个数据库并且它涉及系统版本控制的表时。

于 2021-10-22T15:38:04.197 回答