仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1090|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网页设计使用存储历程按月建数据表

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:51:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
MySQL采用双重授权(DualLicensed),它们是GPL和MySQLAB制定的商业许可协议。存储历程|数据
为了便利数据库的存储、数据的备份、恢复,在实践建库中,我们但愿可以依据详细的年代创建数据表,比方,事务表我们能够创建为EV_yyyymm(yyyy为年份,mm为月份),利用存储历程能够办理静态建表。(源代码以下:)

****************************************************
***存储历程原码***
****************************************************

====天生表的存储历程prCreateDateTable===
SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSOFF
GO

ALTERPROCEDUREprCreateDateTable
AS
--初始化
DECLARE@intErrorCodeint,--毛病号,乐成显现0
@dtmCheckDaydatetime,--体系以后工夫
@strvarchar(40),@SubStrvarchar(10),
@chrnSQLnvarchar(1000)--SQL查询语句
DECLARE@chvSuffixTableNamevarchar(50),--表称号的日期后缀
@chvFinalTableName1varchar(40),--待检测的表称号
@chvFinalTableName2varchar(40),
@chvFinalTableName3varchar(40),
@chvFinalTableName4varchar(40),
@chvFinalTableName5varchar(40),
@chvFinalTableName6varchar(40),
@chvFinalTableName7varchar(40),
@chvFinalTableName8varchar(40)

SELECT@dtmCheckDay=getdate()
SELECT@chvSuffixTableName=dbo.fnFormatDate_month(@dtmCheckDay)---取格局化后的月用到自界说函数

SELECT@chvFinalTableName1=EV_+_+@chvSuffixTableName

--查询有没有@chvTableName_XXXXXX(年代),即@chvFinalTableName表,假如没有则创建
BEGIN
IFNOTEXISTS(SELECT*FROMsysobjectsWHERENAME=@chvFinalTableName1ANDxtype=U)--事务表
BEGIN
SELECT@chrnSQL=CREATETABLE[dbo].[+@chvFinalTableName8+](
+[EVID][char](12)COLLATEChinese_PRC_CI_ASNOTNULL,
+[StarTime][datetime]NOTNULL,
+[StarStake][varchar](9)COLLATEChinese_PRC_CI_ASNOTNULL,
+[EndStake][varchar](9)COLLATEChinese_PRC_CI_ASNOTNULL,
+[Direcation][char](1)COLLATEChinese_PRC_CI_ASNOTNULL,
+[EvType][varchar](3)COLLATEChinese_PRC_CI_ASNOTNULL,
+[EndTime][datetime]NULL,
+[Description][varchar](200)COLLATEChinese_PRC_CI_ASNULL,
+[Advice][varchar](200)COLLATEChinese_PRC_CI_ASNULL,
+[EconLoss][int]NULL,
+[DeathToll][tinyint]NULL,
+CONSTRAINT+@chvFinalTableName8+_PK+PRIMARYKEYCLUSTERED([EVID])ON[PRIMARY]
+)ON[PRIMARY]
EXECsp_ExecuteSql@chrnSQL
END
END;

GO
SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSON
GO

===失掉日期的自界说函数====
SETQUOTED_IDENTIFIERON
GO
SETANSI_NULLSON
GO

ALTERFUNCTIONfnFormatDate_Month(@DATEdatetime)
RETURNSvarchar(50)
AS
BEGIN
declare@intDateYearint,---必要处置数据的年份
@intDateMonthNoint---必要处置数据的月份
declare@chvMonthNovarchar(10),
@chvTableNamevarchar(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
SETQUOTED_IDENTIFIEROFF
GO
SETANSI_NULLSON
GO
============================================================

刚卒业,做软件,初学利用存储历程。
对于IT经理来说,令他们喜欢的MySQL的简单性还有另一方面。MySQL可以运行的更快速。某些人或许会说MySQL缺少了一些人们想要的功能。
兰色精灵 该用户已被删除
沙发
发表于 2015-1-19 07:45:21 | 只看该作者
sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-24 11:23:06 | 只看该作者
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
精灵巫婆 该用户已被删除
地板
发表于 2015-2-1 06:53:08 | 只看该作者
sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西
简单生活 该用户已被删除
5#
发表于 2015-2-7 01:32:00 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
透明 该用户已被删除
6#
发表于 2015-2-19 08:59:01 | 只看该作者
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
活着的死人 该用户已被删除
7#
发表于 2015-3-6 14:31:47 | 只看该作者
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-13 02:08:29 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
深爱那片海 该用户已被删除
9#
发表于 2015-3-20 09:43:35 | 只看该作者
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 20:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表