【问题标题】:ADO Transaction and READPASTADO 事务和 READPAST
【发布时间】:2011-07-05 14:11:47
【问题描述】:

我不知道这是否是最好的方法,如果有更好的方法,请发布。

我有一个读取文件并插入记录的应用程序。 整个文件在一个事务中处理。

在插入记录之前,需要检查表是否有重复项 (注意:我不能把它作为一个表约束,因为有例外)

所以说重复检查是一个普通的select语句,但问题是,它从当前事务中读取了未提交的记录。 我在 select 语句中包含了 READPAST 和 READCOMMITTED 提示,但仍然返回记录。

有什么想法吗?

【问题讨论】:

  • 您将如何处理重复项?回滚整个事务或其他一些业务逻辑?为该字段创建一个唯一索引然后在应用程序中捕获异常可能会更好吗?
  • 感谢您的回复。问题是,同一文件中的重复是可以接受的,但如果记录已经由以前的文件创建,则不能。
  • 部分问题是防止用户两次导入文件。我真的不想把它移到应用程序中,但似乎我必须这样做。

标签: tsql transactions ado query-hints


【解决方案1】:

在数据库中实现这一点的唯一方法是锁定表。看看ISOLATION LEVEL SERIALIZABLE

【讨论】:

  • 谢谢,这可以工作,但并发将是一个大问题。我会在应用程序中处理这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
  • 2011-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
相关资源
最近更新 更多