首页 新闻 搜索 专区 学院

sqlserver 批量插入

0
悬赏园豆:20 [已关闭问题] 关闭于 2013-08-01 17:44

夸服务器sqlserver批量插入 返回自增主键ID 把所有主键ID插入到从表中

 

declare @ids int
declare @rowcount int
declare @StartId int
insert into srv_lnk.数据库.表2(name,password)
select name,password
from 数据库.表1
where  not exists(select b.name,b.password from srv_lnk.数据库.表2 b where name= b.name)
select @ids=SCOPE_IDENTITY(),@rowcount=@@ROWCOUNT
set @StartId=@ConsultationId-@rowcount+1
while @StartId<=@ConsultationId
begin
insert into srv_lnk.数据库.表3(id,createtime)
select @StartId,GETDATE()
set @StartId=@StartId+1
end

为什么SCOPE_IDENTITY()为空

  

cnns的主页 cnns | 初学一级 | 园豆:1
提问于:2013-08-01 14:19
< >
分享
所有回答(2)
0

我写点伪代码:

private InsertData(){
  var StartId = exec("select max(id) from table1");

  for(var i =1;i<10;i++){

    exec("insert Table1(Name) values('Name"+i.ToString()+"')")

  }
  var EndId = exec("select max(id) from table1");


  for(var i =StartId;i<=EndId;i++){

    exec("insert Table2(MainId) values('"+i.ToString()+"')")

  }

}

kylin.chen | 园豆:983 (小虾三级) | 2013-08-01 14:34
0

改造1楼的伪代码:

private InsertData(){
   var idList=new List<int>();
  for(var i =1;i<10;i++){
    var id=exec("insert Table1(Name)values('Name"+i.ToString()+"') select @@identity");
   idList.Add(id);
  }
  foreach(var id in idList){
    exec("insert Table2(MainId) values('"+id.ToString()+"')")
  }
}
幻天芒 | 园豆:36781 (高人七级) | 2013-08-01 17:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册