Ⅰ 如何使用for循环更新sql 语句
CREAT PROCEDURE tester
AS
BEGIN
SET NOCOUNT ON;
DECLARE @userId varchar(50)
DECLARE @count int
SET @count = 0
SELECT @count = count(*) FROM UserService_User WHERE Account like '%111%'
WHILE @count > 0
BEGIN
SELECT @userId = Id FROM UserService_User WHERE Account like '%111%'
exec UserService_RemoveUserByUserId @userId
SET @count = @count -1
END
END
说明:
1、此存储过程在SQL SERVER 2005上测试通过,值得注意的是,循环体中,语句是使用BEGIN……END包括的,而不是网络上常说的WHILE ……END WHILE结构,其他的循环语句,如LOOP ……UNTIL……END LOOP也不能通过编译,也许是版本的问题,但在SQL SERVER2005中,循环体使用BEGIN……END就可以,而不能使用网络上常说的WHILE ……END WHILE结构。
2、循环体中 UserService_RemoveUserByUserId 是一个存储过程的名称,@userId为该存储过程的参数,如果有多个参数,使用“,”分开就可以了,这也是存储过程调用另一个存储过程的一种方法。
Ⅱ SQL 循环修改一个表的某个字段的值,如图
你看是这个意思吗?
数据就是你给的这个,表名我起的叫test
declare@idint
declare@maxidint
set@id=3
select@maxid=max(id)fromtest
begin
while@id<=@maxid
begin
updatetestsetavg_value=balance+(selectavg_valuefromtestwhereid=@id-1)whereid=@id
set@id=@id+1
end
end
结果
Ⅲ 怎么用sql修改一列的数据使其循环递增
代码里写,你需要定义一个全局变量,执行一次sql,变量+1。数据库中可以使用max函数来取最大,然后+1
SELECT MAX(c1) FROM tbl;//获取最大值
如果是oracle数据库,id主键建议使用序列。
Ⅳ SQL实现对一个字段的循环赋值问题
你这样进入死循环了,修改如下:
declare@iint
declare@maxidint
set@i=0
select@maxid=max(id)frompersonal
begin
while@i<@maxid
begin
updatepersonalsetPtrack=@i+1whereid=@i+1
set@i=@i+1
if@i=7
begin
set@i=0
break
end
end
end
Ⅳ mysql里循环修改一字段的SQL语句该如何写
update base set list = id
Ⅵ SQL 循环更新
问题出在这里:
begin
UPDATE orders set qty = @i
set @i = @i + 1
你第八次更新后就把表orders的qty全部更新成8了,你要加条件,如:
begin
UPDATE orders set qty = @i
where id = @i
set @i = @i + 1
那就会按照id来更新,根据id 1到8 更新
Ⅶ sql 如和循环插入,我查询出一组数据,修改后如何快速插回原表
如下:
inset into oa_user_prop (prop_id,role_id,user_id,user_realname)
select SEQ_MAXID_OA_USER_PROP.nextval,1825,user_id,user_realname
oa_user_prop where role_id=1816
Ⅷ mySql 循环读取并修改的sql函数怎么写
估计要用游标循环->字符串累加生成SQL语句,类似update tb set c=a;->再执行的方法
Ⅸ 关于SQL按条件循环插入和修改字段值的语句
使用多表更新语句呀
update table1 set 字段1=a.字段1 from table1 b inner join table2 a on a.关键字=b.关键字
where b.DateTime='本月'
Ⅹ sql server 一条语句循环修改多个值
update first set first.sts = 1,sds = second.sds
from a first
inner join C second on first.id = second.id
-- 手打,大概是这样的