基本的には、テーブルが自分のコードからロックされているかどうかを確認する必要があります。SQL ServerのテーブルがSET LOCK_TIMEOUTでロックされているかどうかを調べる0
私はこれをDB上で直接実行するかどうかを知っています。
SELECT * FROM 'tablename' SET LOCK_TIMEOUT 0
そうでない場合は、テーブルがロックされていないか、何もされている場合、私はすぐにエラーを得ることができます。しかし、私がこのステートメントを自分のコードから呼び出すと、ロックが解放されてから戻ってくるまでに一定の時間待つようです。このクエリを呼び出すために使用しているコードは次のとおりです。
SqlConnection conn = new SqlConnection(@"ConnectionString");
using(conn)
{
conn.Open();
var query = new SqlCommand("SELECT * FROM tablename SET LOCK_TIMEOUT 0", conn);
try
{
SqlDataReader reader = query.ExecuteReader();
// No lock
}catch (Exception)
{
// Deal with lock exception
}
}
私はすぐに知りたいです。助言がありますか?またはこれを行うためのより良い方法は?
これは、トリック、アンクス – Boob