【问题标题】:lock a table in sql server 2008 after select选择后锁定sql server 2008中的表
【发布时间】:2013-10-15 22:11:36
【问题描述】:

我有一个主要的货币表。其中有两个字段,一个是货币类型,一个是货币值。一旦用户开始使用数据库,就无法更改用户。一旦用户选择一个值,我需要通过 SQL Server 2008 Query 锁定我的货币表。 任何人都可以帮助我或建议我进行 DB LOCK 查询。

【问题讨论】:

    标签: sql sql-server-2008-r2


    【解决方案1】:

    我们在数据库中的一个表上遇到了同样的问题。找到this,它对我们有用:

    SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
    BEGIN TRANSACTION;
    SELECT * FROM dbo.MyTable WITH (TABLOCKX);
    

    在执行COMMIT TRANSACTIONROLLBACK TRANSACTION 之前,该表将被锁定。

    希望它对未来的人有所帮助......

    【讨论】:

      【解决方案2】:

      您可以将NOLOCK 用于您的对象。

      例如:

      SELECT TOP 10 * FROM Orders WITH(NOLOCK) where UserName = 'VadaVici'
      

      【讨论】:

      • 要么我误解了这个问题,要么 OP 误解了这个解决方案,但是在选择中使用 NOLOCK 绝不会阻止其他用户更改表格。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多