0

JDBC を使用して SQL Server テーブルの単一の行をロックすることは可能ですか?

jTDS ドライバー v1.2.7 と SQL Server 2005 を使用しています。

で試す

UPDATE myTable SET timestamp=GETDATE() WHERE id='myid'

SQL Server Management Studio から、ロックは行で正しく取得されます。SELECT他の行で実行およびUPDATE指示を行うことができます。

同じことを試みても JDBC を使用すると、テーブル全体がロックされます。

どんな助けでも大歓迎です

4

1 に答える 1

1

セッションの分離レベルを見てください。

select session_id,login_name,program_name,
date_format,quoted_identifier,arithabort,
ansi_null_dflt_on,ansi_defaults,ansi_warnings,
ansi_padding,ansi_nulls,concat_null_yields_null,
case transaction_isolation_level  
when 0 then 'Unspecified'
when 1 then 'ReadUncomitted'
when 2 then 'ReadCommitted'
when 3 then 'Repeatable'
when 4 then 'Serializable'
when 5 then 'Snapshot'
end as transaction_isolation_level,
deadlock_priority
from sys.dm_exec_sessions

READ COMMITTED を使用しているため、SELECT がブロックされている可能性があります。UPDATE は、トランザクションを開いたままにしておくと、その単一の行のみをブロックします。

よろしくお願いします。

于 2013-02-27T13:55:56.227 に答える