我正在使用 java、c3p0 用于连接池和 SQL Server 2005 用于数据库开发应用程序。我的问题是,当我们在数据库中进行事务时,有什么方法可以阻止其他连接吗?例如,如果我们向数据库插入一条记录,另一个试图在同一张表上插入记录的连接将等待第一个连接成功完成......
谢谢
我正在使用 java、c3p0 用于连接池和 SQL Server 2005 用于数据库开发应用程序。我的问题是,当我们在数据库中进行事务时,有什么方法可以阻止其他连接吗?例如,如果我们向数据库插入一条记录,另一个试图在同一张表上插入记录的连接将等待第一个连接成功完成......
谢谢
您可以为那些需要它的事务设置连接的隔离级别;最严格的是 SERIALIZABLE。您不应该尝试“阻止”其他连接。
你想锁定表。SQL Server 将自动执行此操作。但是,您可以使用查询选项来控制 . http://msdn.microsoft.com/en-us/library/aa213039(v=sql.80).aspx 听起来你想要一个独占锁
排他锁
排他 (X) 锁可防止并发事务访问资源。没有其他事务可以读取或修改使用排他 (X) 锁锁定的数据。