declare @Lid as varchar(10)
declare @LI as int
declare @AN as int
declare bucur cursor for
select top 2 t17LibraryId,t17Identifier,t17AccountNO From budgets_t17
open bucur
fetch next from bucur
into @Lid,@LI,@AN
while @@fetch_Status = 0
begin
--print cast(@Lid as varchar(10))+cast(@LI as varchar(10))+cast(@AN as varchar(10))
update budgets_t17 set t17LibraryId = '0002' where current of bucur
fetch next from bucur
into @Lid,@LI,@AN
end
close bucur
deallocate bucur其实就是修改了2条数据,为什么下面提示了7行“(1 row(s) affected)”呢(表里一共有7行数据),这样是不是慢了呢?怎么只让他修改两行呢???谢谢赐教。
declare @LI as int
declare @AN as int
declare bucur cursor for
select top 2 t17LibraryId,t17Identifier,t17AccountNO From budgets_t17
open bucur
fetch next from bucur
into @Lid,@LI,@AN
while @@fetch_Status = 0
begin
--print cast(@Lid as varchar(10))+cast(@LI as varchar(10))+cast(@AN as varchar(10))
update budgets_t17 set t17LibraryId = '0002' where current of bucur
fetch next from bucur
into @Lid,@LI,@AN
end
close bucur
deallocate bucur其实就是修改了2条数据,为什么下面提示了7行“(1 row(s) affected)”呢(表里一共有7行数据),这样是不是慢了呢?怎么只让他修改两行呢???谢谢赐教。
解决方案 »
- 给存储过程中提供空值
- 谁要是用存储过程返回数据集,谁脑子就是有病。
- 权限中 REFERENCES 和 CONTROL 的含义是什么?
- 救命啊,SQL server中十六进制的处理???
- 一個事務里面可不可以包含另一個事務或者多個事務呢﹖
- 谁帮讲下用sp_send_dbmail的一个原理或流程
- 求一句SQL,在线等待,马上结帖!!!!!!!
- audit log是指什么?
- SQL Server 2005 中如何导入Access 2000数据库?
- 高分!一条sql语句的小问题。(在线,解决马上给分儿!)
- CSDN上面怎么查看我还有多少分可以用?
- |zyciis| 我的电脑里装了SQL2005 SQL2000 如何在SQL2005中的一个数据库中映射SQL2000中的一个数据库的一个表 第二贴
--指定修改条件就可以了。
declare @Lid as varchar(10)
declare @LI as int
declare @AN as int
declare bucur cursor for select top 2 t17LibraryId,t17Identifier,t17AccountNO From budgets_t17
open bucur
fetch next from bucur into @Lid,@LI,@AN
while @@fetch_Status = 0
begin
update budgets_t17 set t17LibraryId = '0002' where t17LibraryId=@Lid and t17Identifier=@li and t17AccountNO=@an
fetch next from bucur into @Lid,@LI,@AN
end
close bucur
deallocate bucur
顺便提一下,where current of bucur 是指游标取到的当前数据。
那更不明白...那这个where current of bucur什么意思???
这个语法,我还是头一次见,是sql server的?联机文档上没有查到
这个写法的前提是:
t17LibraryId,t17Identifier,t17AccountNO能够确定一行记录。楼主的这个问题是需要在这句:
update budgets_t17 set t17LibraryId = '0002' where current of bucur 加一个能确定唯一行的字段或字段组,比如主键:
update budgets_t17 set t17LibraryId = '0002' where 主键='xxx'这个主键要在:
declare bucur cursor for select top 2 t17LibraryId,t17Identifier,t17AccountNO From budgets_t17
open bucur
fetch next from bucur into @Lid,@LI,@AN
时,也放到游标内。如:
declare bucur cursor for select top 2 t17LibraryId,t17Identifier,t17AccountNO,主键字段 From budgets_t17
open bucur
fetch next from bucur into @Lid,@LI,@AN,@主键字段变量然后在update时:
update budgets_t17 set t17LibraryId = '0002' where 主键=@主键字段变量
ps:不太清楚current of bucur的用法。