当前位置:首页 > 开发 > 数据库 > 正文

MSSQL存储过程及游标、作业

发表于: 2014-08-26   作者:jveqi   来源:转载   浏览次数:
摘要: 1、存储过程 --==== 月存储过程 ===== alter proc [P_StatWaterCountMonthData] @PointCode varchar(50), --点位编号 @ItemCode varchar(50), --项目编号 @TimeCondition varchar(1000),--读取时间的条件语句 @SaveTime varchar(50),--检测的时间节点

1、存储过程

 --==== 月存储过程 ===== alter proc [P_StatWaterCountMonthData] @PointCode varchar(50), --点位编号 @ItemCode varchar(50), --项目编号 @TimeCondition varchar(1000),--读取时间的条件语句 @SaveTime varchar(50),--检测的时间节点 @EndTime varchar(50),--存储的时间节点 @SelTable varchar(50), @InsTable varchar(50) as begin declare @rowCount int declare @CountSql nvarchar(500) declare @Sql nvarchar(2000) declare @StrengthSql nvarchar(2000) --删除原有数据 set @CountSql='DELETE FROM '+@InsTable+' where 1=1 and '+@TimeCondition+' and WaterSamplingID='''+@PointCode+''' and WaterItemCode='''+@ItemCode+''''; print(@CountSql) exec(@CountSql) --插入新数据 set @StrengthSql=' select WaterSamplingID,WaterItemCode,1,null,null, null,null,Max(MaxValue),Min(MinValue),AVG(AvgValue), count(WaterSamplingID) count,null,null,null,null, '''+@SaveTime+''',0,count(WaterSamplingID) count,null,null, 1,WaterSamplingID, ------------统计 LevelCode--------------- (select case when AVG(AvgValue)<= One_WaterLevel then 1 when AVG(AvgValue)<= Two_WaterLevel then 2 when AVG(AvgValue)<= Three_WaterLevel then 3 when AVG(AvgValue)<= Four_WaterLevel then 4 when AVG(AvgValue)<= Five_WaterLevel then 5 else '''' end from T_Cod_riverOriginStandard where itemCode = WaterItemCode and StandardYear = (''GB3838-2002'')) ----------------------------------------- ,AVG(AvgValue),AVG(AvgValue),'''+@EndTime+''' from T_Mid_RiversDayData where WaterSamplingID='''+@PointCode+''' and WaterItemCode = '''+@ItemCode+''' and '+@TimeCondition+' group by WaterSamplingID,WaterItemCode' set @Sql='insert into '+@InsTable+@StrengthSql; print(@Sql) exec(@Sql) end

 

 

2、游标(判断循环调用存储过程)

alter proc  [P_StatGasCountMonthData]
@PointCode varchar(50), --点位编号
@ItemCode varchar(50), --点位编号
@TimeCondition varchar(1000),--读取时间的条件语句
@CheckTime varchar(50),--检测的时间节点
@SelTable varchar(50), 
@InsTable varchar(50) 
as
begin
	declare @rowCount int
	declare @CountSql nvarchar(500)
	declare @Sql nvarchar(2000)
	declare @StrengthSql nvarchar(2000)
 
	--删除原有数据
	set @CountSql='DELETE FROM '+@InsTable+' where 1=1 and '+@TimeCondition+'  and GasPointCode='''+@PointCode+'''  and GasItemCode='''+@ItemCode+'''';
			print(@CountSql)
			exec(@CountSql) 
	
	  
	--插入新数据
	set @StrengthSql=' select GasPointCode,GasItemCode,1,'''+@CheckTime+''',Max(MaxValue),
			avg(AvgValue),MIN(MinValue),AVG(UpdateValue),GETDATE(),null,null,null,null,0,null,null'+ 
			' from '+@SelTable+'  where GasPointCode='''+@PointCode+''' and GasItemCode='''+@ItemCode+''' and '+@TimeCondition+' group by '+
			' GasPointCode,GasItemCode '
			set @Sql='insert into '+@InsTable+@StrengthSql;
			print(@Sql)
			exec(@Sql) 
end

 

 3、作业定时任务。

 

MSSQL存储过程及游标、作业

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
将原来联系人的名字和性别导入到接听秘书电话方式的留言里面.sql create proc cmantoleave_mess as
1、游标的作用及属性 游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作;
创建客房类型表RoomType 创建客房状态表RoomState 创建客房信息表Room 创建结账状态表ResideState
阶段1:练习——统计某类型客房的入住客人人数 需求说明 使用存储过程统计在指定类型的客房入住客人
阶段4:练习——插入入住客人记录 需求说明 使用存储过程将入住客人信息插入客人信息表中,要求:
最近在做公司月报表的时候出现了一个很让人为难的问题,查询一个支付的过程,内容如下: 两个表:
基础内容: 表变量 临时表在这个会话中存在,而变量是存在你所需要的块中 比如说包啊 过程 函数等中
最近尝试用FineReport 做报表时,由于使用的是MS SQL2005,大量的数据是采用存储过程返回的,按照官
最近尝试用FineReport 做报表时,由于使用的是MS SQL2005,大量的数据是采用存储过程返回的,按照官
前篇回顾:上一篇虫子介绍了一些不常用的数据过滤方式,本篇详细介绍下游标。 概念 简单点说游标的
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号