SQL Server 可以在单个 INSERT 语句中将多少行处理到一个表中?

Jér*_*nge 5 data-warehouse sql-server t-sql azure-sql-data-warehouse

为了说明我的问题,以下是一个查询,检测尚未插入数据仓库并插入它们的订单的 id:

With NewOrders 
As
(   
    Select OrderID From Orders
    Except
    Select OrderID From FactOrders
)
Insert Into FactOrders(OrderID, OrderDate, CustomerId)
    Select OrderID, OrderDate, CustomerId From Orders
    Where OrderID in (Select OrderID from NewOrders);
Run Code Online (Sandbox Code Playgroud)

假设查询是第一次运行并且Orders包含 4 亿行或更多行:

SQL Server 能否在一条INSERT语句中处理这么多行?

如果没有,我应该如何进行?我应该限制INSERT语句中提取的行数吗?引擎可以在单个INSERT语句中处理多少行?

Geo*_*ios 17

根据文档,每个表存储的行数的唯一限制如下

仅受可用资源限制

可能包括哪些本地资源?

  • 记忆
  • 数据库数据文件中用于将插入的数据物理写入的空间
  • 数据库日志文件中的空间
  • TempDB 中的空间(数据和日志)

至于单个 SELECT 语句可以提取多少,我找不到任何直接与此相关的文档,但我认为将其与上述完全相同是安全的。