紧张的运行查询(SQL Server):您怎么看待这个?

Hyt*_*oth 0 sql sql-server transactions

我经常是SQL Server Management Studio用户.有时我会遇到更新或删除查询要运行的情况,但我担心我的一些拼写错误或逻辑错误会导致我对表进行不必要的大规模更改(比如更改1000行时)我打算改变2).

在过去,我只是握紧拳头并屏住呼吸,但后来我想知道在遇到可能的灾难性查询之前我是否可以做这样的事情:

1)在下面运行

begin transaction
(my update/insert/delete statement I want to run)
Run Code Online (Sandbox Code Playgroud)

2)如果我满意,请致电:

commit transaction
Run Code Online (Sandbox Code Playgroud)

3)或者,如果我犯了什么罪,请致电:

rollback transaction
Run Code Online (Sandbox Code Playgroud)

我的想法是否合理,还是我错过了一些基本的东西?我知道我总是可以恢复我的数据库,但与上面相比,这似乎有些过分.

EDITS:

1)我同意在做任何事情之前在测试站点上进行测试,但是仍然有可能在生产服务器上发生问题.也许某些条件在测试服务器上是正确的,这在生产中是不正确的.

2)我也习惯先写我的地方,或者先用我的地方做一个选择,以确保我隔离正确的行,但同样,总会出现问题.

Man*_*anu 11

在将WHERE语句作为UPDATE或DELETE运行之前,将其作为SELECT运行