批量插入数据到SQL Server表而不锁定

时间:2016-06-29 13:26:52

标签: sql sql-server insert locking bulkinsert

有没有办法在不引起任何类型的表或块级锁定的情况下批量插入表中?如果不是,为了避免锁定,需要处理哪些大小的块?

1 个答案:

答案 0 :(得分:0)

可以使用动态sql并根据数据量,索引,键列和约束使用批量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