已经定义好的游标值会变吗?
我在存储过程中用游标,取了数值,在过程中这个数值变了,那我定义的游标的数值会跟着改变吗?
或者这样问,游标的值是跟着表里的值一起变化的吗? 比如我从游标里取个数值,然后我改了数值更新到表里,那这是游标的值是变了还是没有变?
问题点数:50、回复次数:4Top
1 楼hdhai9451(☆新人类☆)回复于 2004-12-02 18:03:17 得分 25
不會兩個都同時存在吧?這是數據同步問題,原則上你是正在讀取數據,你的表已經被鎖住了,也就是一個事務正在進行,另一個事務又申請取得數據庫的操作權限。
那麼這個時候另一個事務要等待前一個事務完成操作後,才能讀取數據。
按你的意思是同一時間兩個事務同時更改數據表,不存在這種的情況。如果存在說明你沒有用事務處理。Top
2 楼jlbnet(老婆好)回复于 2004-12-03 18:53:19 得分 25
根据SQL Server 2000帮助文档里的说法,如果没有用事务的话,游标的值是会变化的。如果是静态游标则不会。
动态游标
动态游标与静态游标相对。当滚动游标时,动态游标反映结果集中所做的所有更改。结果集中的行数据值、顺序和成员在每次提取时都会改变。所有用户做的全部 UPDATE、INSERT 和 DELETE 语句均通过游标可见。如果使用 API 函数(如 SQLSetPos)或 Transact-SQL WHERE CURRENT OF 子句通过游标进行更新,则它们立即可见。在游标外部所做的更新直到提交时才可见,除非将游标的事务隔离级别设为未提交读取。
Top
3 楼zhang_yzy(六子儿)回复于 2004-12-03 19:18:34 得分 0
好象这与以前说的脏读吧Top
4 楼mx9958(箫)回复于 2004-12-06 08:38:42 得分 0
谢谢各位 我再看看资料Top




