关于表的锁的问题???

jsjkhanwei 2008-05-27 12:08:58
我有一个表IDK 如下:
id dec year month newid
12 DD 2008 05 1208
13 CC 2008 05 1209

句子:
在很多人同时使用时如何才解决锁的问题?
SELECT NEWID FROM IDK WHERE ID12


UPDATE IDK SET NEWID=NEWID+1 WHERE ID=12

...全文
55 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
-晴天 2008-05-27
  • 打赏
  • 举报
回复
判断操作是否成功,如不成功返回提示给应用.
锁的问题交给DBMS去处理.
Limpire 2008-05-27
  • 打赏
  • 举报
回复
set xact_abort on

begin tran

SELECT NEWID FROM IDK WHERE ID12
UPDATE IDK SET NEWID=NEWID+1 WHERE ID=12

commit tran

set xact_abort off
jsjkhanwei 2008-05-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 perfectaction 的回复:]
SQL code--查询时允许脏读
SELECT NEWID FROM IDK WITH(NOLOCK) WHERE ID=12

--更新时可以这样写,但列ID必须要有索引
UPDATE IDK SET NEWID=NEWID+1 WHERE ID=12



回答完毕
[/Quote]



如果where 后面的条件有三个呢?
UPDATE IDK SET NEWID=NEWID+1 WHERE ID=12 and year=2008 and month=05
索引如何建呢?
nzperfect 2008-05-27
  • 打赏
  • 举报
回复
--查询时允许脏读
SELECT NEWID FROM IDK WITH(NOLOCK) WHERE ID=12

--更新时可以这样写,但列ID必须要有索引
UPDATE IDK SET NEWID=NEWID+1 WHERE ID=12


回答完毕
arrow_gx 2008-05-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 arrow_gx 的回复:]
查询的时候,显式指定不加锁


SQL codeSELECT NEWID with nolock FROM IDK WHERE ID12
[/Quote]


SQL数据库——锁的概述
http://blog.csdn.net/arrow_gx/archive/2008/05/26/2483149.aspx

SQL Server 2005中解决死锁问题
http://blog.csdn.net/arrow_gx/archive/2008/05/26/2483155.aspx

arrow_gx 2008-05-27
  • 打赏
  • 举报
回复
查询的时候,显式指定不加锁

SELECT NEWID with nolock FROM IDK WHERE ID12 

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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