回滚SQL Server 2014中的上次更新SQL查询
我意外地执行了查询:回滚SQL Server 2014中的上次更新SQL查询,sql,sql-server,sql-server-2014,Sql,Sql Server,Sql Server 2014,我意外地执行了查询: UPDATE TableName SET Name='Ram' 如何撤消此更改?在运行更新或删除之前,请始终测试它们。对于delete,将语句放入select块 SELECT COUNT(NAME) FROM TableName WHERE 并确保返回的记录数与要删除的记录数匹配。对于更新来说,它是一个更难解决的问题。您必须使用事务处理 BEGIN TRANSACTION UPDATE TableName SET Name = 'Ram' SELECT * FR
UPDATE TableName
SET Name='Ram'
如何撤消此更改?在运行更新或删除之前,请始终测试它们。对于delete,将语句放入select块
SELECT COUNT(NAME)
FROM TableName
WHERE
并确保返回的记录数与要删除的记录数匹配。对于更新来说,它是一个更难解决的问题。您必须使用事务处理
BEGIN TRANSACTION
UPDATE TableName
SET Name = 'Ram'
SELECT *
FROM TableName
WHERE Name = 'Ram'
--Rollback Transaction
--Commit Transaction
根据您在事务中所做的操作,只需运行第一部分,保留commit and rollback注释,然后选择将允许您验证所有工作是否正常,然后如果是您想要的,则突出显示并运行commit而不添加注释如果不是您想要的,则突出显示运行,仅显示rollback而不添加注释请撤消它,然后重试。希望这对将来有所帮助。问题是什么?查询是否在事务中?如果没有,那么你不能!不您不能-请查看(除非您使用了事务),如果上一个查询不在打开的事务中,则无法回滚。所以,在这种情况下,您只能从备份中恢复数据库。坏消息。。。如上所述,SQLServer具有自动提交功能,默认情况下,该功能使所有DML语句都具体化,而无需运行提交;指挥部。您需要做的是打电话给DBA,看看您可以使用哪些表还原选项。大多数数据库都会保存过夜快照,因此,如果您的查询具有足够的破坏性,DBA可以回滚整个表。