我在我的应用程序数据库上设置了 allow_snapshot_isolation和READ_COMMITTED_SNAPSHOT 。我有使用临时表的 SP。如果对 SP 进行并发访问,则会引发以下错误。没有一个 SP 有 alter temp table 命令,我的意思是它没有更新任何元数据。
相同的场景在 SQL 2008 R2 中运行良好,但在 SQL 2017 中却不行
“数据库'tempdb'中的快照隔离事务失败,因为该语句访问的对象自该事务开始以来已被另一个并发事务中的DDL语句修改。这是不允许的,因为元数据没有版本化。对元数据的并发更新如果与快照隔离混合会导致不一致。在批处理结束时检测到不可提交的事务。事务被回滚。