数据统计存储过程规范(sql server)
来源:互联网 发布:python url下载文件 编辑:程序博客网 时间:2024/05/20 12:24
在一个需要做大量数据统计分析的项目里,免不了需要写存储过程。如果过程不多不会有问题,但多了以后,维护和监控会产生很多问题。这时候,最好是对存储过程进行统一规范,对异常进行处理和对运行情况做日志记录。也使不同的人编写的过程格式一致,方便维护。
下面的SQL修改第一行,把"db_xxxx"换成自己的数据库名即可运行。【编写环境:sql server2008】
USE [db_xxxx]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO/*--------------------------------------------------------------功能: 游戏数据统计(按天)--返回:0-成功; 1-失败◆测试 exec p_stat_xxxx; exec p_stat_xxxx '2014-11-18';◆修改记录: 日期 描述 作者 1. 2014.11.06 xxname 创建------------------------------------------------------------*/create PROCEDURE p_stat_xxxx @dt datetime = nullWITH EXEC AS CALLERASBEGIN DECLARE @step INT; DECLARE @datadate VARCHAR(10); --数据日期 DECLARE @dbname VARCHAR(20); --当前数据库名 DECLARE @procname VARCHAR(100); --本过程名称 DECLARE @optproc VARCHAR(100); --过程调用的过程 DECLARE @tablename VARCHAR(100); --过程当前处理的表名 DECLARE @err_msg VARCHAR(500); --出错时的错误描述 DECLARE @remark VARCHAR(500); --备注 DECLARE @start_tm DATETIME; --开始时间 SET @dbname = DB_NAME(); SET @procname = 'p_stat_xxxx'; SELECT @step = 0, @optproc = '', @tablename = '', @remark = '游戏数据统计', @err_msg = '', @start_tm = getdate(); IF @dt IS NULL BEGIN SET @dt = CONVERT(varchar(10), getdate() - 1, 120); --得到昨天的日期:2014-04-04 END SET @datadate = CONVERT(VARCHAR(10), @dt, 120); --数据日期:2014-04-04 --=========================================================================== BEGIN TRY--记录日志 INSERT INTO t_run_log(dbname, datadate, step, procname, optproc, tablename, result, err_msg, tm, remark) VALUES (@dbname, @datadate, @step, @procname, @optproc, @tablename, 'begin', @err_msg, getdate(), @remark); ---------------------------------此处写业务SQL end--------------------------------游戏日报统计 SET @step = 1------xxxx数据统计SET @step = 2------------------------------------此处写业务SQL start------------------------------ SET @remark = @remark + '成功,耗时' + CONVERT(VARCHAR, DATEDIFF(SECOND, @start_tm, getdate()) / 60.00) + '(分钟)' + @remark--记录日志 INSERT INTO t_run_log(dbname, datadate, step, procname, optproc, tablename, result, err_msg, tm, remark) VALUES (@dbname, @datadate, @step, @procname, @optproc, @tablename, 'success', @err_msg, getdate(), @remark) RETURN 0; END TRY BEGIN CATCH --错误处理 DECLARE @ErrMsg VARCHAR(4500) SET @ErrMsg = 'Procedure:' + ISNULL(ERROR_PROCEDURE(), '-') + ' ErrorLine:' + CONVERT(VARCHAR(10), ERROR_LINE()) + ' ErrorNumber:' + CONVERT(VARCHAR(10), ERROR_NUMBER()) + ' Message:' + ERROR_MESSAGE(); SET @err_msg = @ErrMsg; SET @remark = 'step: '+cast(@step as varchar(10))+' 失败,耗时' + CONVERT(VARCHAR, abs(datediff(mi, @start_tm, getdate()))) + '(分钟)' + @remarkprint @remark;--记录日志 INSERT INTO t_run_log(dbname, datadate, step, procname, optproc, tablename, result, err_msg, tm, remark) VALUES (@dbname, @datadate, @step, @procname, @optproc, @tablename, 'fail', @err_msg, getdate(), @remark) RETURN 1; END CATCHEND
0 0
- 数据统计存储过程规范(sql server)
- 数据统计存储过程规范(mysql)
- SQL SERVER 统计SQL语句或存储过程执行时间
- 存储过程实现数据导入导出(SQL Server)
- SQL server数据的存储过程
- sql server百万数据分页存储过程
- 统计星期次数的SQL Server存储过程
- 统计星期次数的SQL Server存储过程
- Sql Server 2008单个存储过程统计多个信息
- SQL Server 用存储过程统计每月旷工,病假的天数!(初学随笔)
- Sql Server 给表添加合计并统计金额的存储过程!(源代码分享)
- SQL SERVER存储过程
- SQL SERVER存储过程
- Sql Server 存储过程
- SQL Server存储过程
- SQL SERVER 存储过程
- SQL Server 存储过程
- SQL Server存储过程
- 第十三周项目六体验文件操作(5-实战)
- IOS闭包循环引用(Swift)
- gaga
- 第十五届现场编程比赛初赛(普及组)
- Android PopupWindow介绍及实现菜单效果
- 数据统计存储过程规范(sql server)
- POJ2817——WordStack
- Project Euler - 13
- JAVA NIO之浅谈内存映射文件原理与DirectMemory
- 给MessageBean注入参数值,为Bean注入集合参数值。
- Nginx + Apache 的优化例子一则
- UiAutomator初识-在android上进行UiAutomator 测试基本步骤
- C++命名规范
- oracle 用HINT方式强制索引