如何给sql server 数据库 加锁啊?

mmerry 2010-03-01 04:49:22
如何给sql server 数据库 加锁啊?
...全文
636 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongwenbo520 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mmerry 的回复:]
加锁就是 不给别人操作我的数据库
可以写个具体的吗 不要写一句就没了啊
[/Quote]

主要是用来控制事务的并发的
whb147 2010-03-01
  • 打赏
  • 举报
回复
引用 6 楼 mmerry 的回复:
加锁就是 不给别人操作我的数据库
可以写个具体的吗 不要写一句就没了啊


你把权限降低就可以了
tmoonlight 2010-03-01
  • 打赏
  • 举报
回复
...等楼主把问题表达清楚了再回答
mmerry 2010-03-01
  • 打赏
  • 举报
回复
加锁就是 不给别人操作我的数据库
可以写个具体的吗 不要写一句就没了啊
别样苍茫 2010-03-01
  • 打赏
  • 举报
回复
SQL锁表语句
锁定数据库的一个表

SELECT * FROM table WITH (HOLDLOCK)

注意: 锁定数据库的一个表的区别

SELECT * FROM table WITH (HOLDLOCK)

其他事务可以读取表,但不能更新删除

SELECT * FROM table WITH (TABLOCKX)

其他事务不能读取表,更新和删除

SELECT 语句中“加锁选项”的功能说明

SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明。

功能说明: 

NOLOCK(不加锁)

此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到未完成事务(Uncommited Transaction)或回滚(Roll Back)中的数据, 即所谓的“脏数据”。

HOLDLOCK(保持锁)

此选项被选中时,SQL Server 会将此共享锁保持至整个事务结束,而不会在途中释放。

UPDLOCK(修改锁)

此选项被选中时,SQL Server 在读取数据时使用修改锁来代替共享锁,并将此锁保持至整个事务或命令结束。使用此选项能够保证多个进程能同时读取数据但只有该进程能修改数据。

TABLOCK(表锁)

此选项被选中时,SQL Server 将在整个表上置共享锁直至该命令结束。 这个选项保证其他进程只能读取而不能修改数据。

PAGLOCK(页锁)

此选项为默认选项, 当被选中时,SQL Server 使用共享页锁。

TABLOCKX(排它表锁)

此选项被选中时,SQL Server 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。



HOLDLOCK 持有共享锁,直到整个事务完成,应该在被锁对象不需要时立即释放,等于SERIALIZABLE事务隔离级别

NOLOCK 语句执行时不发出共享锁,允许脏读 ,等于 READ UNCOMMITTED事务隔离级别

PAGLOCK 在使用一个表锁的地方用多个页锁

READPAST 让sql server跳过任何锁定行,执行事务,适用于READ UNCOMMITTED事务隔离级别只跳过RID锁,不跳过页,区域和表锁

ROWLOCK 强制使用行锁

TABLOCKX 强制使用独占表级锁,这个锁在事务期间阻止任何其他事务使用这个表

UPLOCK 强制在读表时使用更新而不用共享锁

注意: 锁定数据库的一个表的区别

SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除

SELECT * FROM table WITH (TABLOCKX) 其他事务不能读取表,更新和删除
20011521 2010-03-01
  • 打赏
  • 举报
回复
select Lock
gdlpc 2010-03-01
  • 打赏
  • 举报
回复
引用楼主 mmerry 的回复:
如何给sql server 数据库 加锁啊?

你说的加锁是什么意思?加密???
不必要加,也不需要加,数据库会自动处理的。
mmerry 2010-03-01
  • 打赏
  • 举报
回复
那具体该怎么加锁和解锁呢?
  • 打赏
  • 举报
回复
一般是在代码里,对某张表进行加锁和解锁的

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧