uri*_*ium 2 database sql-server locking
我有很奇怪的用户要求.我试图向他们解释有更好的方法来支持他们的业务流程,他们不想听到它.我很想走开,但我首先想看看是否还有另一种方式.
有没有办法可以锁定整个数据库而不是行锁或表锁.我知道我可以将数据库置于单用户模式,但这意味着一次只能有一个人使用它.我希望很多人能够一次阅读但只有一个人能够一次写入.
他们正试图做一些非常奇怪的数据迁移.
你想达到什么目的?
但是,就只允许一个人使用数据库而言,实际上没有"数据库锁"的概念.至少不在SQL Server中,不是我所知道的.无论如何,这会让你有什么好处?
如果要从该数据库中进行数据迁移,那么将数据库设置为只读模式(或创建它的快照副本)可能就足够了,也是最简单的方法.
更新:对于您提到的场景(为笔记本电脑用户获取数据,然后重新同步),您一定要查看ADO.NET同步服务 - 这正是它所做的!
即使您无法使用ADO.NET Sync Services,您仍然可以使用笔记本电脑的更改选择性地智能地更新中央数据库,而无需锁定整个数据库.SQL Server有几种方法可以在数据库正在使用时更新行 - 实际上没有必要完全锁定整个数据库只是为了更新几行!
例如:您应该在每个数据表上都有一个TIMESTAMP(或ROWVERSION)列,这样可以轻松地查看是否发生了任何更改.如果TIMESTAMP字段(实际上只是一个计数器 - 它与日期或时间无关)没有改变,则该行没有改变,因此不需要考虑进行更新.
| 归档时间: |
|
| 查看次数: |
1831 次 |
| 最近记录: |