As has been answered above, in SQL you can set implicit transactions on for your connection with that
SET IMPLICIT_TRANSACTIONS ON setting and use the links that Mark and Jack provided.
I would caution against looking at doing this across the board and even doing it often in your own connections. The flip side of making this change is that you now have a transaction for all of your actions. If you don't properly manage or cleanup after yourself, you can now have open transactions hanging around blocking DML in your system.
If you are concerned about accidentally deleting/updating the wrong rows when doing manual cleanup there are some better options:
- Take a backup first
- Backup the table first by selecting all the rows into a new table
(Select * into tmpInCaseIMessUp_TableName_mw FROM TableName)
- Get in the habit of typing
BEGIN TRANSACTION before writing an update/insert/delete from a system...
Sometimes I'll start a session and type
-- COMMIT TRAN
(commented out so it doesn't happen but typing it so I don't get busy and forget)
Then I'll do my work after the begin tran, write a select statement in the same session that shows the after picture to make sure I didn't mess up (or just rely on the number of rows affected, etc.) and then commit if all looks good.