【问题标题】:Lock a SQL server Table for a given time and check if it is locked在给定时间内锁定 SQL Server 表并检查它是否被锁定
【发布时间】:2016-10-18 03:44:22
【问题描述】:

我想在 SQL Server 中锁定一个表一段时间。我在代码级别使用 C#。我该如何实现呢,我还需要验证表是否被锁定。我对 SQL Server 中的锁定表了解不多。我想使用实体框架来实现它。非常感谢任何帮助。

【问题讨论】:

标签: c# entity-framework sql-server-2008 table-lock


【解决方案1】:

你可以试试如下图。

using (var context = new YourContext())
    {
     using (var dbContextTransaction = context.Database.BeginTransaction())
     {
       //Lock the table during this transaction
       context.Database.ExecuteSqlCommand("SELECT 1 FROM YourTable WITH (TABLOCKX)
    WAITFOR DELAY '00:03:00'");

            //your work here

            dbContextTransaction.Commit();
      }
}

注意:表锁在退出BeginTransaction块后会被释放

【讨论】:

  • 一个小编辑。我应该是 dbContextTransaction.Commit() 而不是 scope.Commit() 和 SQL 命令中的表被实际表名替换
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
相关资源
最近更新 更多