在不锁定的情况下将数据批量插入 SQL 服务器 Table

Bulk Inserting data into SQL Server Table without locking

有什么方法可以在不导致任何类型的 table 或块级锁定的情况下向 table 执行批量插入?如果不是,需要处理什么大小的块以避免锁定?

可以使用动态 sql 和 update/insert,根据数据量、索引、键列和约束使用 1000 或 10000 个批次。

动态示例 sql。

CREATE PROCEDURE [dbo].[UpdateDetails] 
(
@l_value NVARCHAR(MAX) = NULL,
@l_name NVARCHAR(MAX) = NULL,
@sql NVARCHAR(MAX)
)
AS
BEGIN
SELECT @sql = 'UPDATE Table1 SET Value = [' + @l_value + '] WHERE Name =['+ @l_name + '] '

EXEC sp_executesql @sql

END