SQL 服务器中作业执行的原子性

Atomicity of a job execution in SQL Server

我想找到合适的文档来确认我对最近写的 SQL 服务器作业的想法。我担心数据可能会在几毫秒内不一致(作业执行开始和结束之间的时间)。

假设作业设置为每 30 分钟 运行。使用以下 SQL 语句只有一个步骤:

DELETE FROM myTable

INSERT INTO myTable 
    SELECT * 
    FROM myTableTemp

是否会发生 SELECT 查询恰好在 DELETE 语句和 INSERT 语句之间执行并因此返回空结果?

如果我在工作中创建 2 个步骤,一个用于 DELETE 查询,另一个用于 INSERT INTO,会怎样?在一个作业的几个步骤之间,原子性是否受到 SQL 服务器的保护?

感谢您对此的帮助

不,没有自动原子处理作业,无论它们是多语句还是步骤。

使用这个:

begin transaction
delete...
insert....
... anything else you need to be atomic
commit work