在不锁定的情况下将数据批量插入 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
有什么方法可以在不导致任何类型的 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