[英]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.