怎样用SQL给SQL2880特定表加锁解锁 10

我现在对指定表加锁后统计存到另一表,然后删除此表数据,在此过程不能向此表插入数据。... 我现在对指定表加锁后统计存到另一表,然后删除此表数据,在此过程不能向此表插入数据。 展开
 我来答
Ailiex
2014-06-23 · TA获得超过996个赞
知道小有建树答主
回答量:1108
采纳率:37%
帮助的人:565万
展开全部

select * from table with (...)


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 将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取


或修改表中的数据。 

  

  使用这些选项将使系统忽略原先在SET语句设定的事务隔离级别(Transaction Isolation Level)。 请查


阅SQL Server 联机手册获取更多信息。



按你的需求,只要加表锁就行了

SELECT * FROM tbname WITH (TABLOCK)
badkano
推荐于2016-05-02 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144775 获赞数:885375
团长

向TA提问 私信TA
展开全部

加锁的语句如下:

SELECT * FROM 表名 WITH (TABLOCK);

这里没有解锁的概念,只有不加锁的概念,语句如下:

SELECT * FROM 表名 WITH (NOLOCK);

加锁的解释:

TABLOCK(表锁) 

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

不加锁的解释:

NOLOCK(不加锁) 

此选项被选中时,SQL Server 在读取或修改数据时不加任何锁。 在这种情况下,用户有可能读取到

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e7b6a5ad0
2014-06-23 · TA获得超过175个赞
知道小有建树答主
回答量:222
采纳率:100%
帮助的人:210万
展开全部

您可以写成事务 或者是存储过程

以事务为例

begin tran
select * from a with(HOLDLOCK)//这里取数据,并且事务结束前不允许更改
delete a
commit
追问
对事务不熟悉,可以推荐文章看看吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式