我有一个包含要锁定的表的 SQL 数据库。我正在使用 Entity Framework 。基本上,有许多进程想要同时写入数据库。他们每个人都想更新某个表中的一行。但是,我希望其中只有一个能够同时执行此操作。
有没有办法锁定整个表,例如防止任何人放置新行或更新行?
谢谢,
基督教
最佳答案
我不清楚你为什么想要这个,但如果你真的想锁定整个表,你可以:
示例改编自 here :
ALTER INDEX [MyIndexName] ON [dbo].[MyTableName] SET ( ALLOW_ROW_LOCKS = OFF, ALLOW_PAGE_LOCKS = OFF)
注意:这假设您的应用程序完全“拥有”这些表 - 不想应用它并破坏其他应用程序
示例改编自 here :
TransactionOptions topt = new TransactionOptions();
topt.IsolationLevel = System.Transactions.IsolationLevel.Serializable;
using (var tran = new TransactionScope(TransactionScopeOption.Required, topt)) {
//do stuff
}
关于sql - 在 Entity Framework 中锁定表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12459338/