Bạn thực hiện mỗi lần chèn bên trong giao dịch của chính nó.
Bắt đầu và cam kết giao dịch là rất đắt trong SQL Server
.
Gộp mọi thứ vào một khối giao dịch duy nhất:
declare @i int
set @i = 0
set nocount on
BEGIN TRANSACTION
while @i < 2000
begin
insert into testdb(testcolumn)
values (1)
set @i = @i + 1
end
COMMIT
Để tạo dữ liệu mẫu, bạn có thể sử dụng CTE
đệ quy :
WITH q (num) AS
(
SELECT 1
UNION ALL
SELECT num + 1
FROM q
WHERE num < 2000
)
INSERT
INTO testdb(testcolumn)
SELECT 1
FROM q
OPTION (MAXRECURSION 0)
, sẽ nhanh hơn.