Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
回滚SQL Server 2014中的上次更新SQL查询_Sql_Sql Server_Sql Server 2014 - Fatal编程技术网

回滚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可以回滚整个表。