【发布时间】:2013-10-15 22:11:36
【问题描述】:
我有一个主要的货币表。其中有两个字段,一个是货币类型,一个是货币值。一旦用户开始使用数据库,就无法更改用户。一旦用户选择一个值,我需要通过 SQL Server 2008 Query 锁定我的货币表。 任何人都可以帮助我或建议我进行 DB LOCK 查询。
【问题讨论】:
我有一个主要的货币表。其中有两个字段,一个是货币类型,一个是货币值。一旦用户开始使用数据库,就无法更改用户。一旦用户选择一个值,我需要通过 SQL Server 2008 Query 锁定我的货币表。 任何人都可以帮助我或建议我进行 DB LOCK 查询。
【问题讨论】:
我们在数据库中的一个表上遇到了同样的问题。找到this,它对我们有用:
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
BEGIN TRANSACTION;
SELECT * FROM dbo.MyTable WITH (TABLOCKX);
在执行COMMIT TRANSACTION 或ROLLBACK TRANSACTION 之前,该表将被锁定。
希望它对未来的人有所帮助......
【讨论】:
您可以将NOLOCK 用于您的对象。
例如:
SELECT TOP 10 * FROM Orders WITH(NOLOCK) where UserName = 'VadaVici'
【讨论】:
NOLOCK 绝不会阻止其他用户更改表格。