首页 > 解决方案 > SQL Server Express 存储过程:选择、删除、插入

问题描述

我正在使用以下查询将记录插入表中。

DELETE FROM Table1;

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

问题是,SELECT 查询由于条件多而需要一些时间来获取,而记录已经从 Table1 中删除,在等待 SELECT 查询结果并插入到 table1 中时,实时记录可能无法在客户端显示。

我需要先选择记录,然后从 table1 中删除记录,然后将所选记录插入 table1。任何人都可以帮助我吗?

标签: sqlsql-servertsqltransactions

解决方案


您可以使用事务,也可以在插入后删除,但在某处添加条件。

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

推荐阅读