如何在SQLEXPRESS中恢复表?

问题描述 投票:2回答:1

我是sql场景的新手,我按预期犯了一个错误。

image

我正在为视频游戏运行私人服务器,当我尝试激活/停用某些区域时,我不小心将0作为区域名称。现在的问题是,由于错误说明我无法改回:

Microsoft SQL Server Management Studio
---------------------------
No row was updated.

The data in row 42 was not committed.
Error Source: Microsoft.SqlServer.Management.DataTools.
Error Message: The row value(s) updated or deleted either do not make the row unique or they alter multiple rows(3 rows).

Correct the errors and retry or press ESC to cancel the change(s). 
sql sql-server sql-server-express
1个回答
2
投票

如果您不知道这些值,那么:

如果没有审计此数据库的触发器,则可以使用第三方工具根据数据库日志文件读取对数据库所做的最新更改。但请确保日志文件未缩小。

您可以使用像ApexSQL Log这样的工具试用来获取过去的值。

如果不起作用,那么您的数据将丢失。您必须获取数据库的旧副本


如果您知道已更改的值:

您必须向表中添加标识列,更改值,然后再将其删除。因为像@MartinSmith评论你收到的错误是因为表中没有找到主键而你有很多重复的行

使用以下sql命令添加标识列

ALTER TABLE [MyTable] ADD ID INT IDENTITY(1,1)
© www.soinside.com 2019 - 2024. All rights reserved.