我是把一个表循环拆成几个,表是完全一样的,表中id是主键,我这样插入好象有点问题,那个id号不对,我不知道怎么才能实现除了主键以外的插入,例如,有字段id,title,我怎么才能插入 insert into report title values (只选择title,id不选)===============下面这段代码是可以执行的,就是id号有点问题===============
declare @i int
declare @sql nvarchar(200)
set @i=2
while @i<3
begin
set @sql='
INSERT INTO report'+CONVERT(nvarchar(20),@i)+' select * from report where (topid in (select id from bbs'+CONVERT(nvarchar(20),@i)+'))
'
exec (@sql)
set @[email protected]+1
end===============我改成下面这样就有错误了,都执行不了===============
declare @i int
declare @sql nvarchar(200)
set @i=2
while @i<3
begin
set @sql='
INSERT INTO report'+CONVERT(nvarchar(20),@i)+' (id,title) value (select * from report where (topid in (select id from bbs'+CONVERT(nvarchar(20),@i)+')))
'
exec (@sql)
set @[email protected]+1
end

解决方案 »

  1.   

    trydeclare @i int
    declare @sql nvarchar(200)
    set @i=2
    while @i<3
    begin
    set @sql='
    INSERT INTO report'+CONVERT(nvarchar(20),@i)+' (id,title) select * from report where (topid in (select id from bbs'+CONVERT(nvarchar(20),@i)+'))
    '
    exec (@sql)
    set @[email protected]+1
    end
      

  2.   

    --插入格式1
    insert tablename values(value1, value2)--插入格式2
    insert tablename1 select value1, value2 from tablename2
      

  3.   

    你们这样都不行,这样可以了declare @i int
    declare @sql nvarchar(200)
    set @i=3
    while @i<4
    begin
    set @sql='
    INSERT INTO report'+CONVERT(nvarchar(20),@i)+' (topid,Content,ip) select topid,Content,ip from report where (topid in (select id from bbs'+CONVERT(nvarchar(20),@i)+'))
    delete report where (topid in (select id from bbs'+CONVERT(nvarchar(20),@i)+'))
    '
    exec (@sql)
    set @[email protected]+1
    end