Sql Server 定期将日志表(大表)三个月以前的数据进行转移
发布日期:2021-05-12 22:58:32 浏览次数:11 分类:精选文章

本文共 3090 字,大约阅读时间需要 10 分钟。

SqlServer ������������������������������������������������������������������

������������

������������SqlServer 2008R2������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������������

��� ���Applogs���������������������������������������

��� ���Applogs���������������������������
��� ������������������������������������������������������������������������������
��� ������������������������������������������������������������������������
��� ������������������������������������������

���������������������������

USE [Applogs]GO SET ANSI_NULLS OFF SET QUOTED_IDENTIFIER ON CREATE PROCEDURE [dbo].[oldLog] AS BEGIN    SET NOCOUNT ON;    SET ANSI_PADDING ON;    Declare @date VARCHAR(100) = CONVERT(VARCHAR(100), GETDATE(), 112);    Declare @TableDay VARCHAR(100) = 'dbLog_' + @date;    Declare @PK VARCHAR(50) = 'PK_dbLog_' + @date;    Declare @sql_create VARCHAR(8000) = 'CREATE TABLE [dbo].[' + @TableDay + '] (		[LogId] [bigint] IDENTITY(1,1) NOT NULL,		[PartnerId] [varchar](50) NULL,		[OrderId] [bigint] NULL,		[PartnerOrderStatus] [nvarchar](50) NULL,		[RequestUrl] [nvarchar](200) NULL,		[RequestData] [nvarchar](max) NULL,		[ResponseData] [nvarchar](max) NULL,		[CreateAt] [datetime] NULL,		[busType] [nvarchar](20) NULL	) CONSTRAINT [' + @PK + '] PRIMARY KEY CLUSTERED (		[LogId] ASC	)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, 	 ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]';    EXEC (@sql_create);    Declare @sql_inset VARCHAR(8000) = 'Declare @date date; SET @date = CAST(GETDATE() AS DATE); 	SET IDENTITY_INSERT [dbo].[' + @TableDay + '] ON;    INSERT INTO [dbo].[' + @TableDay + ']     (        [LogId],        [PartnerId],        [OrderId],        [PartnerOrderStatus],        [RequestUrl],        [RequestData],        [ResponseData],        [CreateAt],        [busType]    )    SELECT         [LogId],        [PartnerId],        [OrderId],        [PartnerOrderStatus],        [RequestUrl],        [RequestData],        [ResponseData],        [CreateAt],        [busType]    FROM [dba].[dbo].[RequestLog]    WITH (NOLOCK)    WHERE CreateAt <= DATEADD(MONTH, -3, @date);	SET IDENTITY_INSERT [dbo].[' + @TableDay + '] OFF';    EXEC (@sql_inset);    Declare @sql_delete VARCHAR(8000) = 'Declare @date date; SET @date = CAST(GETDATE() AS DATE); 	dellete [dba].[dbo].[RequestLog] 	WHERE CreateAt <= DATEADD(MONTH, -3, @date)         AND CreateAt <= @date';    EXEC (@sql_delete); END

������������������������������������������������������������������������������������������������������������������������������Sql Agent���������������������������������������������

上一篇:VMware vCenter Server 6.5配置群集功能(iscsi)(一)集群描述
下一篇:Sql Server 2008R2证书认证镜像技术之故障转移过程

发表评论

最新留言

很好
[***.229.124.182]2025年04月13日 22时08分34秒