因此,连续第二天,有人擦除了整个数据表,而不是他们试图删除的一行,因为他们没有限定的where子句。
我在mgmt的演播室里到处找,但就是找不到一个确认选项。我知道其他数据库的工具也有这个功能。
发布于 2008-11-11 16:33:57
我建议您应该始终使用带有WHERE子句的写SELECT语句,然后执行它来实际查看您的delete命令将删除哪些行。然后使用相同的WHERE子句执行DELETE。这同样适用于更新。
发布于 2008-11-11 16:24:28
在Tools>Options>Query Execution>SQL Server>ANSI下,您可以启用隐式事务选项,这意味着您不需要显式包含Begin Transaction命令。
这样做的明显缺点是,您可能忘记在末尾添加提交(或回滚),或者更糟糕的是,默认情况下,您的同事会在每个脚本的末尾添加Commit。
你可以把马引到水边。
您可能会建议他们在做任何事情(取决于数据库的大小)之前始终进行临时备份,以防万一。
发布于 2008-11-11 16:15:36
在运行DELETE语句之前,请尝试使用BEGIN TRANSACTION。
然后你可以选择COMMIT或ROLLBACK COMMIT。
https://stackoverflow.com/questions/281339
复制相似问题