sqlserver读取数据问题

sqlserver,有表A更新数据是 先读取要更改的数据的主要字段,例如字段1、2、3存在临时表内,然后用关键字段关联表A后先delete后insert,另一个窗口有查询语句此时查询读取该表,但当整个delete和insert时间比较慢时,会导致另一个窗口查询了delete后的数据,造成幻读,有什么办法可以解决此问题吗?

SQL yzmaDt6d6191220 发布于 2024-2-21 14:01
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CovidLv3高级互助
发布于2024-2-21 14:02(编辑于 2024-2-21 14:05)

将删除和插入放入事务里面

BEGIN TRY  

BEGIN TRANSACTION 

DECLARE 

/*删除、插入sql*/

COMMIT TRANSACTION 

END TRY 

BEGIN CATCH 

SELECT ERROR_NUMBER() AS ERRORNUMBER 

ROLLBACK TRANSACTION 

END CATCH

-----------

或者查询的时候加上WITH(READPAST)   SELECT * FROM A WITH(READPAST) 

  • 0关注人数
  • 130浏览人数
  • 最后回答于:2024-2-21 14:05
    请选择关闭问题的原因
    确定 取消
    返回顶部