declare @ReturnID int
@ReturnID 值是从一个表查询出最大ID然后加一
 INSERT INTO  #TB_ReportField(ReportTicketID ,OrderNo,OrderName)
select @ReturnID as ReportTicketID,
OrderNo,OrderName
from #TmpReportData  
现在的问题是临时表有#TmpReportData里有10条数据,我怎么把ReportTicketID插入并且不重复

解决方案 »

  1.   

    declare @ReturnID int
    @ReturnID 值是从一个表查询出最大ID然后加一
     INSERT INTO  #TB_ReportField(ReportTicketID ,OrderNo,OrderName)
    select @ReturnID as ReportTicketID,
    OrderNo,OrderName
    from #TmpReportData  
    set @returnid=identity()+1前提你的#tb对应的列是自增的
      

  2.   

    把表结构改一下,就不用管这个了CREATE TABLE #TB_ReportField
    (ReportTicketID INT IDENTITY(1,1) ,
    OrderNo VARCHAR(10),
    OrderName VARCHAR(10)) INSERT INTO  #TB_ReportField(OrderNo,OrderName)
    select OrderNo,OrderName
    from #TmpReportData  
      

  3.   

    问题是ReportTicketID必须根据那个规则来生成ID啊,给自增列  最后再修改?
      

  4.   

    declare @ReturnID int
    SELECT @ReturnID=MAX(ReportTicketID) FROM #TB_ReportField --初始化
    WHILE 循环条件
    BEGIN
     INSERT INTO  #TB_ReportField(ReportTicketID ,OrderNo,OrderName)
    select @ReturnID+1 as ReportTicketID,
    OrderNo,OrderName
    from #TmpReportData  
    WHERE 条件SELECT @ReturnID=MAX(ReportTicketID)+1 FROM #TB_ReportField 
    end这样呢?
      

  5.   

    解决了;    你没理解我的这个!
    ID INT IDENTITY(1,1),ReportTicketID INT  我给了两个字段,先把ReportTicketID留空,添加了其它字段的内容后,循环update ReportTicketID 的值where条件根据循环的次数+1值