現在我的sql查詢一次插入所有的行,但是我想一次插入1000個項目,這樣插入過程中表格就不會被鎖定。如何使用光標一次插入1000個項目?
查詢
DECLARE cur CURSOR FOR SELECT Some variables FROM @CardNumbers
OPEN cur
begin tran
FETCH NEXT FROM cur INTO Some variables
WHILE @@FETCH_STATUS = 0 BEGIN
BEGIN TRY
select @id = @@CURSOR_ROWS
//INSERT
END TRY
BEGIN CATCH
if (ERROR_NUMBER() = 2601)
begin
set @DuplicateCardNo = @DuplicateCardNo + 1
end
else
throw
END CATCH
FETCH NEXT FROM cur INTO Some variables
END
commit tran
CLOSE cur
DEALLOCATE cur
我怎樣才能做到這一點?
不這樣做然後用光標 - >插入mytable(col1,col2,col3)從myOtherTableOr中選擇val1,val2,val3任何 – gsharp
我需要進行檢查之前我可以插入table1中的每一行,然後我可以將數據插入到table2中 – Timsen
您可以插入從光標到#temp表格,然後快速插入並插入/選擇到最終目的地。然而,大多數東西可以在我的經驗中無需光標就可以完成。 – gsharp