資料庫循環
1. sql 循環
declare @a int
set @a=1
while 1=1
begin
insert into 表名 values(....)
if @a=100 break
set @a=@a+1
end
---
以上,希望對你有所幫助。
2. 資料庫循環語句怎麼寫
你這個好像不需要循環呀:
update A set B = 1 where C BETWEEN 1 AND 400;
這樣一個語句就可以把C為1~400的數據記錄的B欄位設置為1。
3. 資料庫循環插入數值
數量多的話用insert select方法插入,如果只是純數字的話,可以用系統表
insert into tb (a,b) select a.number,b.number from master..spt_values a,master..spt_values b
where a.type='p' and b.type='p' and a.number between 1 and 100 and b.number between 1 and 5
4. 查詢資料庫時,如何循環顯示出所有數據
這個時候得用游標了。比如:
create proc cursorTest @_id int=0, @_name varchar(50)='' as --創建游標 declare @cursor cursor --設定游標欲操作的數據集 set @cursor=cursor for select _id,_name from users --打開游標 open @cursor --移動游標指向到第一條數據,提取第一條數據存放在變數中 fetch next from @cursor into @_id,@_name --如果上一次操作成功則繼續循環 while(@@fetch_status=0)begin --操作提出的數據 print @_name --繼續提下一行 fetch next from @cursor into @_id,@_name end --關閉游標 close @cursor --刪除游標 deallocate @curso
5. SQL中循環語句
可以用變數的形式來增加,不過你的userid 三位顯然不夠,因為你要加10000數據,所以要和authnum形式一樣,5位才夠
下面是一個簡單的例子,你可以根據實際需求來改一下。
DECLARE @i int
DECLARE @strUserId varchar(10)
DECLARE @strAuthnum varchar(10)
Set @i = 0
WHILE @i < 10000
BEGIN
Set @i =@i +1
SET @strUserId = RIGHT('00000' + CAST(@i AS varchar(10)),5)
SET @strAuthnum = @strUserId
insert into user_info values(@strUserId,@strAuthnum)
END
6. sql循環讀取多個資料庫
sql循環讀取多個資料庫
SQL游標的優點是可以方便從一個結果集中進行循環遍歷數據在進行操作。
1、游標允許應用程序對查詢語句select 返回的行結果集中每一行進行相同或不同的操作,而不是一次對整個結果集進行同一種操作;
2、它還提供對基於游標位置而對表中數據進行刪除或更新的能力;
3、游標把作為面向集合的資料庫管理系統和面向行的程序設計兩者聯系起來,使兩個數據處理方式能夠進行溝通。
7. sql 幾種循環方式
1:游標方式
ALTERPROCEDURE[dbo].[testpro]
as
declare@yeardatestrvarchar(20)--日期拼接
declare@meternovarchar(20)--儀表編號
declare@collectindatanamevarchar(30)--數據採集表
declare@collectindataname_backvarchar(30)--數據採集備份表
declare@monsdtvarchar(20)
declare@monedtvarchar(20)
begin
set@yeardatestr=datename(YY,getdate())+datename(MM,getdate())
set@monsdt=Convert(VarChar(4),DatePart(year,GETDATE()))+'-'+Convert(VarChar(2),DatePart(MONTH,DateAdd(MONTH,-2,GETDATE())))+'-01'
set@monedt=CONVERT(VARCHAR(10),DateAdd(DAY,-1,DateAdd(MONTH,2,Convert(datetime,@monsdt,121))),20)
declaremeters_curcursorlocalfast_forward--定義游標
for
openmeters_cur--打開游標
fetchnextfrommeters_curinto@meterno--從游標中取出數據
while@@fetch_status=0--取出數據成功
begin
dbccSHRINKFILE(testdb_log,0)--收縮日誌
fetchnextfrommeters_curinto@meterno--下一條
end
closemeters_cur--關閉游標
deallocatemeters_cur--釋放游標
end
2:goto方式
nextValue:--循環起點關鍵字
select@num=ynumfrompp_yunnumwhereprjsht=@prjsht
IF(@flg=1)
set@yunsht='K'+@prjsht+'-'+Convert(varchar(10),@num+1)
ELSE
set@yunsht=REPLACE(@prjsht,'_','')+'-'+dbo.Lpad(@num+1,2,'0')
ifexists(select1frompp_yunwherepp_yun.sht=@yunsht)
begin
updatepp_yunnumsetynum=ynum+1whereprjsht=@prjsht
gotonextValue;--重新從nextValue出執行
end
8. 在SQL資料庫中有哪些循環
循環語句各類語言都差不多。
語法結構類似
在sql server 中
WHILE Boolean_expression
{ sql_statement | statement_block }
[ BREAK ]
{ sql_statement | statement_block }
[ CONTINUE ]
9. SQL循環語句
你可以直接在查詢分析器了試一下這個語句,你具體的意思我也不太清楚,循環就要用游標了,其實也可以實現
create table a (id int,cno char(10))
insert a values(1,'999')
insert a values(2,'1000')
create table b (id int)
insert b values(1)
insert b values(3)
insert b values(5)
declare @max int
select @max=max(cast(cno as int)) + 1 from a
declare @sql nvarchar(2000)
set @sql = 'create table #temp (id int, cno int identity('+cast(@max as nvarchar) +',1)) '
set @sql = @sql + 'insert #temp select id from b where id not in(select id from a) '
set @sql = @sql + 'insert a select id,cast(cno as nvarchar) from #temp'
exec sp_executesql @sql
select * from a
drop table a,b
10. 資料庫怎麼循環插入數據
已經測試,創建並運行下面的存儲過程可以循環添加數據:
create procere dowhile()
begin
declare i int default 0;
start transaction;
while i<50 do
insert into users(userId,userName,userPwd) values(null,concat('s00',i),123456);
set i=i+1;
end while;
commit;
end;
delimiter;