Is there a way I can issue rollbackable DML queries in SQL Server 2000 without locking tables? In Oracle I know the before image is stored in the UNDO Tablespace before committed so that if the transaction is not committed it can be rollbacked while during this other users can access and query the table being updated. However in SQL Server when I try something like the below the table will be locked until the transaction is rolledback or committed. Is there a way round doing this? I am wary about locking production database tables for DML transactions.
CREATE TABLE testtbl(
testcol VARCHAR(100))
INSERT INTO testtbl VALUES('Insert Something')
BEGIN TRANSACTION
UPDATE testtbl
SET testcol = 'Update Something'
Thanks.