В основном мне нужно проверить, заблокирована ли таблица из моего кода.
Я знаю, запускаю ли я это прямо на БД;
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
}
}
Я бы хотел знать сразу. Какие-либо предложения? Или есть ли лучший способ сделать это?