mssql2000k delete from 不能使用READPAST锁?

@信心 2011-10-29 05:55:12
在mssql2000环境下在存贮过程写一行代码如下:

DELETE FROM autoNum WITH (READPAST);

运行结果提示:只有在 SELECT 语句中才允许使用 NOLOCK、READUNCOMMITTED 和 READPAST 锁提示!

问题:1、mssql2000k 环境是,delete from 不能使用READPAST锁?
2、在sql查询分析器如何运行存贮过程(返回一个参数)
...全文
181 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2011-11-02
  • 打赏
  • 举报
回复
补充: 不确定sql2000是否有output参数,试试咯.
唐诗三百首 2011-11-02
  • 打赏
  • 举报
回复
问题:
1、mssql2000k 环境是,delete from 不能使用READPAST锁?
--> 这是规定, 没什么好解释的哦.

2、在sql查询分析器如何运行存贮过程(返回一个参数)
--> sql2000没有output参数,试试把结果select出来即可.
@信心 2011-10-29
  • 打赏
  • 举报
回复
谢谢上楼的高人。我的意思是在作删除时的屏蔽掉并发用其他操作!
中国风 2011-10-29
  • 打赏
  • 举报
回复
--Create table autoNum(ID int identity primary key,number int)
insert autoNum select 10
insert autoNum select 20
insert autoNum select 30

--窗口1
begin tran
DELETE FROM autoNum WITH (rowlock,holdlock) where ID=1


--窗口2
begin tran
update autoNum WITH (rowlock,holdlock)
set number=number+100
where ID=2

这样用行锁
中国风 2011-10-29
  • 打赏
  • 举报
回复
楼主是乱用啊,
这提示是用于 其它事务有改动某一条记录时,select用这提示可以过滤正在更新的记录,而不是在删除时提示
dawugui 2011-10-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 best_caohit 的回复:]
谢谢楼上!
有没有存贮过程详细点的介绍。
[/Quote]存储过程(feixianxxx)
http://topic.csdn.net/u/20091127/21/10a70c07-8683-4f9e-be7e-2415fa8f6956.html?seed=296887941&r=61490884#r_61490884
@信心 2011-10-29
  • 打赏
  • 举报
回复
谢谢楼上!
有没有存贮过程详细点的介绍。
-晴天 2011-10-29
  • 打赏
  • 举报
回复
人家说不能,那就是不能,锁是人家造的!
dawugui 2011-10-29
  • 打赏
  • 举报
回复
1 如何锁一个表的某一行

A 连接中执行

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ

begin tran

select * from tablename with (rowlock) where id=3

waitfor delay '00:00:05'

commit tran

B连接中如果执行

update tablename set colname='10' where id=3 --则要等待5秒

update tablename set colname='10' where id<>3 --可立即执行

2 锁定数据库的一个表

SELECT * FROM table WITH (HOLDLOCK)


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

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

SELECT * FROM table WITH (TABLOCKX)
其他事务不能读取表,更新和删除

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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