我想找到合适的文档来确认我对我最近编写的SQL Server作业的想法。我担心的是数据可能会在几毫秒内不一致(作业执行开始到结束之间的时间)。
让我们将作业设置为每30分钟运行一次。下面的SQL语句只有一步:
DELETE FROM myTable
INSERT INTO myTable
SELECT *
FROM myTableTemp
是否可能恰好在SELECT
语句和DELETE
语句之间执行INSERT
查询并返回空结果?
如果我将在工作中创建两个步骤,一个用于DELETE
查询,另一个用于INSERT INTO
,该怎么办? SQL Server是否在一项工作的多个步骤之间保护原子性?
感谢您对此的帮助
答案 0 :(得分:0)
否,没有对作业的自动原子处理,无论它们是多条语句还是多步。
使用此:
begin transaction
delete...
insert....
... anything else you need to be atomic
commit work