高分求解:SQL 循环执行语句,错在哪里
来源:百度知道 编辑:UC知道 时间:2024/08/20 11:07:02
declare @i int
set @i = 0
BEGIN TRAN
if @i<10 then
update ci set aaa='fff' from ci where idname=@i
set @i=@i+1
end
COMMIT TRAN
提醒,我问大家的重点,是当SQL语句执行中,遇到某条数据因错误不能执行时,要跳过这条记录,继续执行下一条记录。具体该怎么写?
这个语句是需要SQL查询分析器里面执行的。
declare @i int
set @i = 0
BEGIN
while @i<7
set @i=@i+1
update ci set aaa='gss' where id=@i
end
COMMIT
现在这样的无法循环执行,只执行了一条记录,
set @i = 0
BEGIN TRAN
if @i<10 then
update ci set aaa='fff' from ci where idname=@i
set @i=@i+1
end
COMMIT TRAN
提醒,我问大家的重点,是当SQL语句执行中,遇到某条数据因错误不能执行时,要跳过这条记录,继续执行下一条记录。具体该怎么写?
这个语句是需要SQL查询分析器里面执行的。
declare @i int
set @i = 0
BEGIN
while @i<7
set @i=@i+1
update ci set aaa='gss' where id=@i
end
COMMIT
现在这样的无法循环执行,只执行了一条记录,
sql语句不对吧
应该是update ci set aaa='fff' where idname=@i
没有from ci
update ci已经指明是ci表了,就不用from ci了
别的还没有查出什么错误
我测试了一下,把它改成这样就对了,不过执行的很慢,
declare @i int
set @i = 0
BEGIN
while @i<10
update ci set aaa='fff' where idname=@i
set @i=@i+1
end
COMMIT
中间不要有空格哦
不好意思,楼主,我的水平也就这样了
你问题提简单了。建议你去专业学习这些的地方咨询。那人些比网上人说的好明白些
你不就是要把idname为1~10的修改一下嘛,一个语句就可以的,不必要循环吧:
update ci set aaa='fff' where idname BETWEEN 1 AND 10