SQL Server中合并用户日志表的_PHP教程
Jul 13, 2016 pm 05:01 PM
在维护SQL Server数据库的过程中,大家是不是经常会遇到成千上万的类似log20050901 这种日志表,每一个表中数据都不是很多,一个一个打开看非常不方便,或者有时候我们需要把这些表中的资料汇总,一个一个打开操作也是很麻烦。下面就介绍了一种自动化的合并表的方法。
我的思路是创建一个用户存储过程来完成一系列自动化的操作,以下是代码。
--存储过程我命名为BackupData,可以使用自己定义的名称。
--参数1:@TableTarget 生成的目标表的名称
--参数2:@TableStart 合并开始的表名
--参数3:@TableEnd 合并结束的表名
CREATE PROCEDURE BackupData @TableTarget sysname,@TableStart sysname,@TableEnd sysname
AS
DECLARE tnames_cursor CURSOR
FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
OPEN tnames_cursor
DECLARE @TableName sysname
DECLARE @TablePref sysname
DECLARE @IsTargetExist integer
--判断目标表是否存在
SET @IsTargetExist=(SELECT count(TABLE_NAME) FROM INFORMATION_SCHEMA.TABLES where table_name = @TableTarget)
--如果目标表不存在则新建表
IF @istargetexist=0
BEGIN
--EXEC中的语句可以用SQL Server编写的表脚本替换。注意在目标表中不能够存在与需合并表中名称一样的“自动编号”类型的字段。
EXEC ('CREATE TABLE [dbo].[' @TableTarget ']
(
[LOG1] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[LOG2] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
……
)')
END
FETCH NEXT FROM tnames_cursor INTO @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 --开始导入

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Was ist der Unterschied zwischen HQL und SQL im Hibernate-Framework?

Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP

Wie implementiert Hibernate polymorphe Zuordnung?

iOS 18 fügt eine neue Albumfunktion „Wiederhergestellt' hinzu, um verlorene oder beschädigte Fotos wiederherzustellen

Eine ausführliche Analyse, wie HTML die Datenbank liest

So stellen Sie eine Website mit PHP bereit und pflegen sie

Wie lässt sich Go WebSocket in Datenbanken integrieren?

Wie verwende ich Datenbank-Callback-Funktionen in Golang?
