declare @TaskID int
set @TaskID=0INSERT INTO tbl(TaskID)
SELECT @TaskID=@TaskID+1  from b where b.name='aaaa'
就是要把b表里的所有name='aaaa'的记录找出来,然后@TaskID根据
count(b.name='aaaa')的条数批量插入到tbl里这样写会报错,请问要怎么写呢?

解决方案 »

  1.   

    这个意思?
    declare @TaskID int
    set @TaskID=0INSERT INTO tbl(TaskID)
    SELECT count(b.name)  from b where b.name='aaaa'
      

  2.   

    declare @TaskID int
    set @TaskID=0SELECT @TaskID=@TaskID+1  from b where b.name='aaaa'
    INSERT INTO tbl(@TaskID)看你的意思好象是这样吧?
      

  3.   

    declare @TaskID int
    set @TaskID=0SELECT @TaskID=count(*)  from b where b.name='aaaa'declare @i as int
    set @i = 1
    while @i<=@TaskID
      begin
          INSERT INTO tbl(TaskID) values(@i)
          set @i = @i + 1
      end
      

  4.   

    declare @TaskID int
    set @TaskID=0INSERT INTO tbl(TaskID)
    SELECT 0  from b where b.name='aaaa'update tbl set taskID=@TaskID, @taskID=@taskID+1
      

  5.   

    tianzhenjing(宁静夏天)和dawugui(潇洒老乌龟) 意思对了,但我insert里不光有TaskID,还有从其他表里查出来的记录  用游标做了。。