Sql server 如何在SQL Server中导致一致性错误?
我从客户那里得到的一个表的Sql server 如何在SQL Server中导致一致性错误?,sql-server,Sql Server,我从客户那里得到的一个表的dbcc checkdb输出中有以下错误(更多非常类似的行): Msg 8964,第16级,状态1,第1行 表错误:对象ID 212503619,索引ID 1,分区ID 72057594046251008,分配单元ID 72057594048675840(输入LOB数据)。未引用第页(1:705),插槽0,文本ID 328867287793664的行外数据节点 CHECKDB在表“X”(对象ID 2126630619)中发现0个分配错误和49个一致性错误 此错误是在运行
dbcc checkdb
输出中有以下错误(更多非常类似的行):
Msg 8964,第16级,状态1,第1行表错误:对象ID 212503619,索引ID 1,分区ID 72057594046251008,分配单元ID 72057594048675840(输入LOB数据)。未引用第页(1:705),插槽0,文本ID 328867287793664的行外数据节点 CHECKDB在表“X”(对象ID 2126630619)中发现0个分配错误和49个一致性错误 此错误是在运行软件升级时产生的(如果他从备份中恢复DB并再次运行升级,则同样的问题再次出现) 我的问题是-我怎么可能从我的应用程序中创建这种错误?我一直认为这种错误一定是由某些环境(HDD)问题引起的,但我在另一个环境的同一张表上看到了相同的问题。我尝试了和他一样的步骤,但没有成功
谢谢 没错,这可能是SQL Server中的一个严重错误。使用有文档记录且受支持的T-SQL不可能导致损坏。导致你需要的腐败
DBCC CHECKDB([AdventureWorks2012]) WITH NO_INFOMSGS, ALL_ERRORMSGS
如果在升级之前在数据库上运行
dbcc checkdb
,会发生什么?@chuex,没有任何错误。我已经仔细检查过了。对不起,您是想在您的环境中复制问题以进行调试(检索原因),还是只是想解决问题?@FrancescoDeLisi,我正在尝试复制以查找可能的原因。删除customer的错误很简单,它只有很少的行,我可以轻松地删除它们并重新插入。实际上,要修复它,您应该使用带有修复\u允许\u数据\u丢失的DBCC CheckDB()。一个可能的原因是:您的DB备份的行数少于实际行数(简单地说,它较旧),因此会出现INDEX
问题。尝试备份最后一个数据库,升级应用程序并还原。我认为这是一个DB问题。