0

IDENTITY有没有办法(使用配置+事务隔离级别)来确保 SQL Server列中没有临时漏洞?持久的孔是可以的。我试图避免的情况是,一个查询返回一个漏洞,但随后的类似查询返回一个在第一次运行查询时尚未提交的行。

4

1 回答 1

1

您的问题是隔离级别之一,与身份无关。同样的问题适用于任何更新/插入可见性。第一个查询可以在一种情况下返回包含未提交行的结果:如果您使用脏读(未提交读)。如果你这样做了,那么你应该得到所有不一致的结果,你不应该得到任何帮助。

如果您想在两次连续读取之间看到稳定的结果,您必须有一个包含两次读取的事务并使用 SERIALIZABLE 隔离级别,或者更好地使用基于行版本控制的隔离级别,如 SNAPSHOT。我的建议是启用 SNAPSHOT 并使用它。请参阅使用快照隔离

我所需要的只是承诺按照他们声称的身份值的顺序提交到表中的插入。

我希望你再读一遍并意识到请求的不可能性('promise ... commit..')。在它完成之前,你不能要求一些东西来保证成功。您所要求的最终归结为要求在先前分配的身份成功提交之前不分配新身份。换句话说,所有插入事务的完全序列化。

于 2013-05-13T09:03:06.070 回答