我有一个要锁定的表的SQL数据库。我正在使用实体框架。基本上,每个进程都有许多要同时写入数据库的过程。他们每个人都希望更新某个表中的一行。但是,我只希望其中一个能够同时执行此操作。
有没有一种锁定整个表的方法,例如防止任何人放置新行或更新行?
谢谢,克里斯蒂安
我不清楚您 为什么 会想要这样做,但是如果您确实想锁定整个表,则可以:
改编的示例:
ALTER INDEX [MyIndexName] ON [dbo].[MyTableName] SET ( ALLOW_ROW_LOCKS = OFF, ALLOW_PAGE_LOCKS = OFF)
注意:这假设您的应用程序仅“拥有”这些表-不想应用此表并破坏其他应用程序
从这里改编的示例:
TransactionOptions topt = new TransactionOptions(); topt.IsolationLevel = System.Transactions.IsolationLevel.Serializable; using (var tran = new TransactionScope(TransactionScopeOption.Required, topt)) { //do stuff }