Ⅰ 如何使用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
-- 手打,大概是這樣的