MYSQL编程:SQL Server中兼并用户日记表的办法
首先我们要知道,或许有一项技术存在很多理由让我们可以选择使用MySQL学习教程,但是让我们不使用它往往只要有一个理由就足够了。server在保护SQLServer数据库的过程当中,人人是否是常常会碰到不计其数的相似log20050901这类日记表,每个表中数据都不是良多,一个一个翻开看十分不便利,大概偶然候我们必要把这些表中的材料汇总,一个一个翻开操纵也是很贫苦。上面就先容了一种主动化的兼并表的办法。我的思绪是创立一个用户存储历程来完成一系列主动化的操纵,以下是代码。
--存储历程我定名为BackupData,可使用本人界说的称号。
--参数1:@TableTarget天生的方针表的称号
--参数2:@TableStart兼并入手下手的表名
--参数3:@TableEnd兼并停止的表名
CREATEPROCEDUREBackupData@TableTargetsysname,@TableStartsysname,@TableEndsysname
AS
DECLAREtnames_cursorCURSOR
FOR
SELECTTABLE_NAME
FROMINFORMATION_SCHEMA.TABLES
OPENtnames_cursor
DECLARE@TableNamesysname
DECLARE@TablePrefsysname
DECLARE@IsTargetExistinteger
--判别方针表是不是存在
SET@IsTargetExist=(SELECTcount(TABLE_NAME)FROMINFORMATION_SCHEMA.TABLESwheretable_name=@TableTarget)
--假如方针表不存在则新建表
IF@istargetexist=0
BEGIN
--EXEC中的语句能够用SQLServer编写的表剧本交换。注重在方针表中不克不及够存在与需兼并表中称号一样的“主动编号”范例的字段。
EXEC(CREATETABLE.[+@TableTarget+]
(
(10)COLLATEChinese_PRC_CI_ASNULL,
(10)COLLATEChinese_PRC_CI_ASNULL,
……
))
END
FETCHNEXTFROMtnames_cursorINTO@TableName
WHILE(@@FETCH_STATUS-1)
BEGIN
IF(@@FETCH_STATUS-2)
BEGIN
SELECT@TableName=RTRIM(@TableName)
--以下两行依据日记表的称号变动
--取日记表名的前3位作为标识
SELECT@TablePref=LEFT(@TableName,3)
--判别表名是不是附合请求
IF(@TablePref=log)and(@TableName>=@TableStart)and(@TableName<=@TableEnd)
--入手下手导进
BEGIN
EXEC(INSERTINTO+@TableTarget+SELECT*FROM+@TableName)
PRINT表+@TableName+已导进+@TableTarget+中
END
END
FETCHNEXTFROMtnames_cursorINTO@TableName
END
--开释内存
CLOSEtnames_cursor
DEALLOCATEtnames_cursor
把下面代码在SQL查询剖析器中运转即天生存储历程BackupData。
BackupData的利用办法以下:
EXECBackupData‘兼并后表名’,’入手下手表名’,’停止表名’,比方:
EXECBackupData‘_logs200508’,’log200508000000’,’log200508319999’。
由于我没有找到能够完成这类操纵的SQL语句以是写了如许的存储历程,假如人人有好的更复杂的举措请给我留言或来信:pujiang10@gmail.com。
与数据库相关的流程的逐渐标准化,使得解决方案提供商能以更便捷的方式提供服务、部署应用程序、规划容量和管理资源。DBaaS模式还有助于减少数据和数据库的冗余度并提升整体服务质量。 对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。 可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。 是要和操作系统进行Socket通讯的场景。否则建议慎重! 记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。 换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的 连做梦都在想页面结构是怎么样的,绝非虚言 总感觉自己还是不会SQL 呵呵,这就是偶想说的 发几份SQL课件,以飨阅者
页:
[1]