背景:
课程表
课程编号  课程名称   是否考试 
10001    软件工程   是        
10002    vc语言     是        
10003    vb语言     否
 
考试表
课程编号  课程名称    考试编号
10001    软件工程   ???       
10002    vc语言     ???        
问题:现在想根据 课程表 的是否考试,来生成 考试表及考试编号。条件:课程表中 是否考试='是' 就生成到考试表中(如果考试表中已存在课程编号了就不在生成了)并生成一个流水号的考试编号。
   请前辈指点生成数据和考试编号的问题,小弟先感谢了!

解决方案 »

  1.   

    select * from 课程表 where 是否考试='是'select * from 考试表 where 课程编号='要插入项的课程编号'//如果返回有则不插入,如果没有则插入insert into 考试表(课程编号,课程名称,考试编号)values('要插入项的课程编号','要插入项的课程名称','在外部定义一个局部或全局变量自加')基本就这么几个就够了~
      

  2.   

    insert into 考试表(课程编号,课程名称)
    select 课程编号,课程名称 from 课程表 where 是否考试='是' and 课程编号 not exist (select 课程编号 from 考试表)考试编号 可以整个自增,不用插入了。
      

  3.   


    -- 先删再插
    if(exists(dbo.考试表))
     drop table 考试表
    go
    select 考试编号=identity(int,1,1),课程编号,课程名称 into 考试表 from 课程表 where 是否考试='是'
      

  4.   

    如果是用SQL脚本写有难度,但如果用程序就方便多了,写个程序吧。
      

  5.   

    if not exists( select * from 考试表 
    where 课程编号=(select 课程编号 from 课程表 where 是否考试='是')

    begin
      insert into 考试表(课程编号, 课程名称,考试编号)
      select 课程编号, 课程名称,课程编号+'01' from 课程表 
    end