要用一个存储过程实现一些SQL语句的功能,由于半路出家,实在没有什么思路,求高人指点一下:
语句是诸如以下:
select * from table1 where (名称 not in (select 名称 from talbe))
如果返回结果数不为空,则执行
delete table1 where(名称 not in(select 名称 from table))
如果为空,则返回一个消息:"数据完整,检查下步"并执行下一步检查下一个数据完整性
select * from table3 where (名称 not in (select 名称 from talbe4))
如果返回结果数不为空,则执行
delete table3 where(名称 not in(select 名称 from table4))
如果为空,则返回一个消息:"数据完整,检查下步"并执行下一步
select * from table5 where ...........
update..............
select * from table7 where............
insert table8...............很乱,求高手看一下,最近比较郁闷的一个问题!

解决方案 »

  1.   

    select * from table1 where 名称 not in (select 名称 from talbe)
    if @@rowcount>0
    delete table1 where 名称 not in(select 名称 from table)
    else
    print '数据完整,检查下步'
      

  2.   

    if(select count(*) from table1 where (名称 not in (select 名称 from talbe))) > 0
    begin
    delete table1 where(名称 not in(select 名称 from table))
    end
    else
    begin
     if(select count(*) from table3 where (名称 not in (select 名称 from talbe4))) >0
     begin
      delete table3 where(名称 not in(select 名称 from table4)) 
     end
     else
     begin
       select * from table5 where ...........
       update..............
       select * from table7 where............
       insert table8...............
     end
    end
    那个话要时时显示,我就不知道怎么做了
      

  3.   

    用if else 语句就可以实现,,
      

  4.   

    系统中有这样四个主表,主要作用如下:
    一、现用数据表
        shenp
        shenpjg
    二、备份数据表
        shenp_b
        shenpjg_b
    现在由于数据量太大,因此将“现用数据表”中的数据定期按指定条件和指定日期移动到“备份数据表”中,这样就可以减少数据的交互量,减轻服务器压力;整个动作的过程如下:------------------------------------检查未结转数据完整性
    SELECT * FROM shenpjg WHERE (批复单号 NOT IN  (SELECT 审批单号  FROM shenp))delete  shenpjg WHERE (批复单号 NOT IN  (SELECT 审批单号 FROM shenp))
    ------------------------------------检查已结转数据完整性SELECT * FROM shenpjg_B WHERE (批复单号 NOT IN (SELECT 审批单号 FROM shenp_b))delete shenpjg_B WHERE (批复单号 NOT IN (SELECT 审批单号 FROM shenp_b))
    -------------------------------------找到差异数据
    select * from V_shenp where 审批单号 not in (select 审批单号 from shenp_B) AND 审批意见 in('同意','不同意')  and 请求时间 > '2006-09-15'update shenp set  状态说明='2' where select 审批单号 from V_shenp where 审批单号 not in (select 审批单号 from shenp_B) AND 审批意见 in('同意','不同意')  and 请求时间 > '2006-09-15'-------------------------------------向shenp_b 插入数据INSERT INTO shenp_b select 审批单号 from shenp where 状态说明='2'
    -------------------------------------向shenpjg_b 插入数据select * from shenpjg where 批复单号 in (select 审批单号 from shenp where 状态说明='2' )INSERT INTO shenpjg_b select * from shenpjg where 批复单号 in (select 审批单号 from shenp where 状态说明='2' )-------------------------------------向shenp_v_b 插入数据select * from v_shenp where 批复单号 in (select 审批单号 from shenp where 状态说明='2' )INSERT INTO shenp_v_b select * from v_shenp where 批复单号 in (select 审批单号 from shenp where 状态说明='2' )-------------------------------------删除 shenpjg shenpselect * from shenpjg where 批复单号 in (select 审批单号 from shenp where 状态说明='2' )select 审批单号 from shenp where 状态说明='2'其中的请求日期变作一个变量,由WEB页引入
      

  5.   

    if(select count(*) from table1 where (名称 not in (select 名称 from talbe))) > 0
    begin
    delete table1 where(名称 not in(select 名称 from table))
    end
    else
    begin
     if(select count(*) from table3 where (名称 not in (select 名称 from talbe4))) >0
     begin
      delete table3 where(名称 not in(select 名称 from table4)) 
     end
     else
     begin
       select * from table5 where ...........
       update..............
       select * from table7 where............
       insert table8...............
     end
    end顶一下