⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 axesweight.sql

📁 大型桥梁健康监测中的关于数据库的存储过程的实现
💻 SQL
字号:
/*
 *	文件名:AxesWeight.sql
 *	说明:轴重模块存储过程的定义
 *	修改日期:2006.6.15
 *	执行条件:当数据库重新创建时,就要执行以下SQL语句
 */


/*******************************************************************************************/ 
/*
 *	存储过程名:SP_Cars_SelectByPageNo
 *	说明:通用的分页检索,可以提高效率,通用性强
 *	修改日期:2006.6.15
 */

/*一个通用的分页检索存储过程----开始*/

--检查所要创建的存储过程sp_selectbypageno是否存在
if Exists(select * from dbo.sysobjects where id=object_id('SP_Cars_SelectByPageNo'))
   drop procedure SP_Cars_SelectByPageNo
go

--创建存储过程
CREATE PROCEDURE SP_Cars_SelectByPageNo
@tb varchar(50), --表名 
@col varchar(50), --按该列来进行分页 
@coltype int, --@col列的类型,0-数字类型,1-字符类型,2-日期时间类型 
@orderby bit, --排序,0-顺序,1-倒序 
@collist varchar(800),--要查询出的字段列表,*表示全部字段 
@pagesize int, --每页记录数 
@page int, --指定页 
@condition varchar(800),--查询条件 
@totalcount int OUTPUT, --总记录数
@pages int OUTPUT --总页数 
AS 

--关掉 显示所影响的记录数 这个功能,提高性能
SET NOCOUNT ON 
DECLARE @sql nvarchar(4000),@where1 varchar(800),@where2 varchar(800) 

IF @condition is null or rtrim(@condition)='' 
	BEGIN--没有查询条件 
		SET @where1=' WHERE ' 
     		SET @where2=' ' 
	END 
ELSE 
	BEGIN--有查询条件 
		SET @where1=' WHERE ('+@condition+') AND '--本来有条件再加上此条件 
		SET @where2=' WHERE ('+@condition+') '--原本没有条件而加上此条件 
	END 

SET @sql='SELECT @totalcount=COUNT(*),@pages=CEILING((@totalcount+0.0)/'+CAST(@pagesize AS varchar)+ 
') FROM '+@tb+@where2 

--计算总页数、总记录数 
EXEC sp_executesql @sql,N'@totalcount int OUTPUT,@pages int OUTPUT',@totalcount OUTPUT,@pages OUTPUT

IF @pages<>0 AND @page>@pages
	SELECT @page=@pages 

IF @orderby=0 
	SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+ 
	' FROM '+@tb+@where1+@col+'>(SELECT MAX('+@col+') '+ 
	' FROM (SELECT TOP '+CAST(@pagesize*(@page-1) AS varchar)+' '+ 
	@col+' FROM '+@tb+@where2+'ORDER BY '+@col+') t) ORDER BY '+@col 
ELSE 
	SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+ 
	' FROM '+@tb+@where1+@col+'<(SELECT MIN('+@col+') '+ 
	' FROM (SELECT TOP '+CAST(@pagesize*(@page-1) AS varchar)+' '+ 
	@col+' FROM '+@tb+@where2+'ORDER BY '+@col+' DESC) t) ORDER BY '+ 
	@col+' DESC' 

--如果是第一页
IF @page=1 
	SET @sql='SELECT TOP '+CAST(@pagesize AS varchar)+' '+@collist+' FROM '+@tb+ 
	@where2+'ORDER BY '+@col+CASE @orderby WHEN 0 THEN '' ELSE ' DESC' END 

--正式执行该存储过程
EXEC(@sql) 

SET NOCOUNT OFF 
/*一个通用的分页检索存储过程----结束*/
GO
/*******************************************************************************************/ 


/*******************************************************************************************/
/*
 *	存储过程名:SP_Cars_DeleteByDateTime
 *	说明:根据给定的日期datetime,删除相应该日期的纪录
 *	修改日期:2006.6.15
 */

if Exists(select * from dbo.sysobjects where id=object_id('SP_Cars_DeleteByDateTime'))
   drop procedure SP_Cars_DeleteByDateTime
go
Create procedure SP_Cars_DeleteByDateTime
@datetime char(14)
AS
delete from 轴重 where datetime=@datetime
go
/*******************************************************************************************/


/*******************************************************************************************/
/*
 *	存储过程名:SP_Cars_StatisticByKind
 *	说明:根据汽车轴数进行统计,给出对应每种轴数所含汽车的数量
 *	修改日期:2006.6.15
 */

if Exists(select * from dbo.sysobjects where id=object_id('SP_Cars_StatisticByKind'))
   drop procedure SP_Cars_StatisticByKind
go
create procedure SP_Cars_StatisticByKind
as
Select TotalCount=count(*),AxesNum=zhoushu from 轴重 group by zhoushu
go
/*******************************************************************************************/

/*******************************************************************************************/
/*
 *	存储过程名:SP_Cars_IsHeavyCar
 *	说明:根据车上桥的时间判断其是否触发挠度、振动等的存盘
 *	修改日期:2006.9.1
 */
if Exists(Select * from dbo.sysobjects where id=object_id('SP_Cars_IsHeavyCar'))
	Drop Procedure SP_Cars_IsHeavyCar
Go
Create Procedure SP_Cars_IsHeavyCar
	@DateTime char(14)
As
	select * From 右幅桥 Where cartime=@DateTime
	If @@rowcount=1
		return(1)
	else
		return(0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -