簡體   English   中英

SQL Server Express存儲過程:選擇,刪除,插入

[英]SQL Server Express Stored procedure: Select, delete, insert

我正在使用下面的查詢將記錄插入表中。

DELETE FROM Table1;

INSERT into Table1 (F1,f2,f3...) SELECT * FROM TABLE2 WHERE......

問題是,由於許多條件,SELECT查詢花了一些時間,而記錄已從Table1中刪除,但在等待SELECT查詢結果並插入到table1中時,實時記錄可能無法在客戶端顯示。

我需要先SELECT記錄,然后從table1中刪除記錄,然后將所選記錄插入到table1中。 誰能幫我嗎?

您可以使用類似的交易記錄,也可以在插入后刪除交易,但可以在某處添加條件。

BEGIN TRY
BEGIN TRAN

   While (i<0)(while loop and so on condition.)
   BEGIN
     DELETE FROM Table1 ;
     INSERT into Table1 (F1,f2,f3...) SELECT * FROM TABLE2 WHERE......
   END

COMMIT TRAN
END TRY
BEGIN CATCH
  ROLLBACK TRAN
END CATCH

您可以使用@@ rowcount

Declare @row_count int
SELECT @row_count=count(*) FROM TABLE2 WHERE......
INSERT into Table1 (F1,f2,f3...) SELECT * FROM TABLE2 WHERE......
DELETE TOP(@row_count) FROM Table1 ;

首先獲取要插入多少條記錄,首先插入數據,如果數據插入成功,則刪除數據,否則將不刪除其他數據

因此,表中每次都有可用數據來顯示客戶端

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM