用游标删除数据的问题
可以用游标来删除表中所有数据么?想插入一行删除一行,可以么
------解决方案--------------------是从A表往B里插入数据,然后把B里的这条数据删除
---
不是白玩了么。。
------解决方案--------------------呵呵
------解决方案--------------------可以用游标来删除表中所有数据么?想插入一行删除一行,可以么
是从A表往B里插入数据,然后把B里的这条数据删除
------------------------
当然可以:
declare 游标 cursor for select ??? from A
open 游标
fetch next from 游标 into ???
while @@fetch_status=0
begin
insert into B values(???)
delete from A where current of 游标 --删除当前行
fetch next from 游标 into ???
end
close 游标
deallocate 游标
------解决方案--------------------SCROLL_LOCKS
指定确保通过游标完成的定位更新或定位删除可以成功。当将行读入游标以确保它们可用于以后的修改时,Microsoft SQL Server 会锁定这些行。如果还指定了 FAST_FORWARD,则不能指定 SCROLL_LOCKS。
OPTIMISTIC
指定如果行自从被读入游标以来已得到更新,则通过游标进行的定位更新或定位删除不成功。当将行读入游标时 SQL Server 不锁定行。相反,SQL Server 使用 timestamp 列值的比较,或者如果表没有 timestamp 列则使用校验值,以确定将行读入游标后是否已修改该行。如果已修改该行,尝试进行的定位更新或定位删除将失败。如果还指定了 FAST_FORWARD,则不能指定 OPTIMISTIC。
------解决方案--------------------是不是声明了只读游标,不要定要 READ_ONLY 关键字,象 ORDER BY 之类的都有可能导致游标只读。
------解决方案--------------------还在想,怎么刚插到B里就删掉了呢 !
学习
------解决方案--------------------把A中的一条数据保存到B,然后删除A中的这条数据
题目是这个意思吧