declare @i as int declare @j as int set @i = 1 set @j = 100 while @i <= @j begin print @i set @i = @i + 1 end
如果能一次提取数据,可直接使用insert intoinsert into tb1(col1,col2...) select col1,col2,... from tb2 where ...
mssql 里没有 for 循环的
写循环使用whiledeclare @a int set @a =1 while @a<11 begin --your coding print @a set @a = @a+1 end如果只是将A表添加数据导入B表 select * into B from A 就可以了
insert into Table1(cc,dd)values(11,select aa from table2)如果这样怎么办 cc这个字段值是固定的 dd这个字段是从table2里的一个字段取数据
insert Table1(dd) select aa from table2
用游标吧: declare @aa varchar(50) declare cur cursor for select aa from table2 open cur fetch next into @aa while(@@fetch_status=0) begin insert into table1 (cc,dd) values (11,@aa) fetch next into @aa end close cur deallocate cur
或者: insert into Table1(cc,dd) select 11,aa from table2
用游标吧: declare @aa varchar(50) declare cur cursor LOCAL STATIC for select aa from table2 open cur while(0=0) begin fetch next into @aa IF @@fetch_status <> 0 break; insert into table1 (cc,dd) values (11,@aa) end close cur deallocate cur
declare @j as int
set @i = 1
set @j = 100
while @i <= @j
begin
print @i
set @i = @i + 1
end
set @a =1
while @a<11
begin
--your coding
print @a
set @a = @a+1
end如果只是将A表添加数据导入B表
select * into B from A 就可以了
declare @aa varchar(50)
declare cur cursor for select aa from table2
open cur
fetch next into @aa
while(@@fetch_status=0)
begin
insert into table1 (cc,dd) values (11,@aa)
fetch next into @aa
end
close cur
deallocate cur
insert into Table1(cc,dd) select 11,aa from table2
declare @aa varchar(50)
declare cur cursor LOCAL STATIC for
select aa from table2
open cur
while(0=0)
begin
fetch next into @aa
IF @@fetch_status <> 0
break;
insert into table1 (cc,dd) values (11,@aa)
end
close cur
deallocate cur
还是直接用insert into t select * from k比较快
insert T1(dd) select aa from T2
--就可以
insert T1(cc,dd) select 11,aa from T2
--就可以