`
liubin2010
  • 浏览: 307409 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

应用存储过程按月建数据表

阅读更多


        为了方便数据库的存储、数据的备份、恢复,在实际建库中,我们希望能够根据具体的年月建立数据表,例如,事件表我们可以建立为EV_yyyymm(yyyy为年份,mm为月份),使用存储过程可以解决动态建表。(源代码如下:)

****************************************************
***                存储过程原码                  ***
****************************************************

====生成表的存储过程prCreateDateTable===
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

ALTER              PROCEDURE prCreateDateTable
AS   
--初始化  
    DECLARE @intErrorCode int,         --错误号,成功显示0
   @dtmCheckDay datetime,     --系统当前时间
   @str varchar(40),@SubStr varchar(10),
   @chrnSQL nvarchar(1000)   --SQL查询语句
    DECLARE @chvSuffixTableName  varchar(50),     --表名称的日期后缀
    @chvFinalTableName1 varchar(40),        --待检测的表名称
    @chvFinalTableName2 varchar(40),
    @chvFinalTableName3 varchar(40),
    @chvFinalTableName4 varchar(40),
    @chvFinalTableName5 varchar(40),
    @chvFinalTableName6 varchar(40),
    @chvFinalTableName7 varchar(40),
    @chvFinalTableName8 varchar(40)

    SELECT @dtmCheckDay = getdate()
    SELECT @chvSuffixTableName = dbo.fnFormatDate_month(@dtmCheckDay)   ---取格式化后的月用到自定义函数

    SELECT @chvFinalTableName1  = EV_ + _ + @chvSuffixTableName 

    --查询有无@chvTableName_XXXXXX(年月),即@chvFinalTableName表,如果没有则建立
BEGIN
 IF NOT EXISTS (SELECT * FROM sysobjects WHERE NAME = @chvFinalTableName1 AND xtype=U)    -- 事件表
    BEGIN
     SELECT @chrnSQL= CREATE TABLE [dbo].[+ @chvFinalTableName8 +](
      +[EVID] [char] (12) COLLATE Chinese_PRC_CI_AS NOT NULL ,
      +[StarTime] [datetime] NOT NULL ,
      +[StarStake] [varchar] (9) COLLATE Chinese_PRC_CI_AS NOT NULL ,
      +[EndStake] [varchar] (9) COLLATE Chinese_PRC_CI_AS NOT NULL ,
      +[Direcation] [char] (1) COLLATE Chinese_PRC_CI_AS NOT NULL ,
      +[EvType] [varchar] (3) COLLATE Chinese_PRC_CI_AS NOT NULL ,
      +[EndTime] [datetime] NULL ,
      +[Description] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
      +[Advice] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
      +[EconLoss] [int] NULL ,
      +[DeathToll] [tinyint] NULL,
      + CONSTRAINT + @chvFinalTableName8 +_PK + PRIMARY KEY CLUSTERED ([EVID])  ON [PRIMARY]
      +)  ON [PRIMARY]
           EXEC sp_ExecuteSql @chrnSQL
  END
END;

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

===得到日期的自定义函数====
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

ALTER  FUNCTION fnFormatDate_Month (@DATE datetime)
RETURNS  varchar(50)
AS 
BEGIN
 declare @intDateYear int,    ---需要处理数据的年份
   @intDateMonthNo int         ---需要处理数据的月份
 declare @chvMonthNo varchar(10) ,
   @chvTableName  varchar(50)

 select @intDateYear = year(@DATE )
 select @intDateMonthNo = month(@DATE)select  @chvMonthNo=00+convert(varchar(2),@intDateMonthNo)
 select  @chvMonthNo=substring(@chvMonthNo,len(@chvMonthNo)-1 ,2
 select  @chvTableName=convert(varchar(4),@intDateYear)+@chvMonthNo
 return (@chvTableName)
END

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
============================================================

分享到:
评论

相关推荐

    存储过程扩展学习

    2. **系统存储过程**:SQL Server提供了一系列内建的系统存储过程,用于处理系统级别的任务,如查询系统信息、修改数据库设置等。它们都以`sp_`开头,存储在`master`数据库中,由系统管理员维护。 3. **临时存储...

    MySQL存储过程编程教程.pdf

    安全性得以加强是因为存储过程可以限制用户直接对数据库表的访问,数据完整性可以通过在存储过程中加入逻辑约束来保证,应用程序性能通过减少网络传输的数据量和在数据库端集中处理数据来提升,易维护性则体现在逻辑...

    sqlserver存储过程生成器

    SQL Server存储过程生成器是一种工具,它极大地简化了数据库开发者的工作,尤其是对于处理大量表及其关联操作时。这种工具能够自动分析数据库结构,并根据表的定义生成相应的存储过程,节省了手动编写这些复杂脚本的...

    数据挖掘技术在城市住建领域的应用.pdf

    在总结以上知识点的过程中,可以清晰地看到数据挖掘技术在城市住建领域的应用有着广泛前景。不仅能够提升城市交通的运行效率,降低交通违规行为,还能够帮助城市管理者更好地进行城市规划和资源配置。随着大数据和...

    存储过程 函数

    2. **代码复用**:存储过程可以被多个应用调用,减少了代码重复,提高了开发效率。 3. **安全性**:通过权限控制,可以限制用户对特定存储过程的访问,从而保护数据安全。 4. **减少网络流量**:调用存储过程比...

    oracle存储过程学习经典[语法+实例+调用]

    在实际应用中,存储过程常常用于数据处理、业务规则的实现以及性能优化等场景。 在学习Oracle存储过程时,结合详细的文档如《oracle存储过程超详细使用手册.doc》和实例资料《oracle存储过程学习经典[语法+实例+...

    Java存储过程实现Oracle远程逻辑备份与恢复.pdf

    【Java存储过程实现Oracle远程逻辑备份与恢复】 Oracle数据库是一个基于网络计算的系统,它内建了对Java的支持,包括Oracle JVM(Java Virtual Machine),这使得开发者能够在数据库服务器端执行复杂的计算任务,...

    数据湖存储架构选型_compressed.pdf

    数据湖元数据服务支持不同数据源的集成,包括自建数据、云原生数据、混合云数据等,使得数据湖可以灵活地服务于各种业务场景。 在数据湖的管理方面,数据治理是一个核心问题。数据治理包括数据质量、数据安全、数据...

    基于Oracle存储过程与触发器的三维空间数据日志管理方法.pdf

    总结起来,基于Oracle存储过程与触发器的三维空间数据日志管理方法是一种实用的技术手段,它结合了数据库的内建功能,实现了高效、安全的数据日志管理,特别适合于需要精确记录和监控操作的三维空间数据应用场景。...

    数据中心存储架构论述.doc

    在新的IT发展过程中,数据中心建设已经进入云计算时代,企业IT存储环境已经不能 简单的从一般性业务运营需求来构建云计算的数据中心存储环境。云计算数据中心的建 设不是为了满足某一个业务系统的特殊目标,是为了...

    数据库:HANA学习记录(表、视图、函数、存储过程以及计算视图)

    以上介绍了SAP HANA中表、视图、函数、存储过程以及计算视图的相关操作,这些功能都是SAP HANA数据库的核心组成部分,对于进行高效的数据管理和分析至关重要。通过掌握这些技术,可以更好地利用SAP HANA的强大功能来...

    sybase的存储过程编写经验和方法

    本文主要探讨了Sybase存储过程的编写经验与方法,旨在帮助数据库开发人员提升工作效率,优化存储过程的性能,特别是面对大量数据和高并发需求时。 首先,跨库操作应当谨慎处理。开发人员应避免直接引用其他数据库的...

    HAWQ在预警情报大数据分布式存储中的应用研究.pdf

    HAWQ在预警情报大数据分布式存储中的应用研究,是深入探讨如何在大数据环境中实现结构化数据的高效存储与分析处理的专题研究。该研究的核心是在Hadoop搭建的分布式存储平台上利用HAWQ数据仓库技术,旨在解决预警情报...

    ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据库服务器中的数据。

    它可以执行不返回结果的SQL语句,如存储过程,或者创建数据连接。不过,直接通过此接口获取记录集不是最佳实践,因为这可能需要遍历所有记录才能获得总数。 2. `_CommandPtr` 接口:这个接口用于执行返回记录集的...

    初识PostgreSQL存储过程

    在实际应用中,PostgreSQL 存储过程可以用于各种复杂任务,比如数据处理、业务逻辑封装、事务管理等。它们可以帮助我们组织和优化数据库操作,同时也可以作为安全机制,因为我们可以控制谁可以调用这些过程以及他们...

    西安电子科技大学 《网络存储》课件

    2. 安全性:网络存储涉及数据加密、身份验证、访问控制等安全措施,确保数据在传输和存储过程中的安全性。 3. 存储资源调度:通过智能算法优化存储资源分配,提高存储效率,降低运营成本。 五、云存储 1. 公有云...

    C++常用算法关于数据存储常用算法

    - **堆排序**:利用堆结构(最大堆或最小堆)进行排序,可以在线性时间内完成建堆过程。 2. **查找算法**: - **线性查找**:遍历整个数组,直到找到目标元素或者遍历结束。 - **二分查找**:只适用于已排序的...

    QT版采集工具 ,产品级别,多线程采集数据,存储数据,快速导出数据,任务分配调度清晰,界面美观大方!

    QT版采集工具是一款基于Qt框架开发的专业级数据采集软件,具备多线程处理能力,能够高效地抓取、存储和导出数据。该工具在设计上注重任务的分配与调度,确保了整体运行的高效性和稳定性,同时拥有直观且美观的用户...

    存储过程参考文档.pdf

    PL/SQL 存储过程概要学习 PL/SQL 是一种 procedural language,建基于 SQL 的基础上增加了过程化处理的语言,是 Oracle 对 SQL 的扩充。它具有变量、控制结构、自定义的存储过程和函数、对象类型等特征。 块结构是...

Global site tag (gtag.js) - Google Analytics