要用一个存储过程实现一些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...............很乱,求高手看一下,最近比较郁闷的一个问题!
语句是诸如以下:
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...............很乱,求高手看一下,最近比较郁闷的一个问题!
if @@rowcount>0
delete table1 where 名称 not in(select 名称 from table)
else
print '数据完整,检查下步'
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
那个话要时时显示,我就不知道怎么做了
一、现用数据表
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页引入
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顶一下