取原月的计划内容作为计划表目标月的计划内容,取原月的任务内容作为任务表目标月的任务内容
2009-04-10 21:30
309 查看
ALTER PROCEDURE [dbo].[DustPatrol_Copy_PlanTasks]
-- Add the parameters for the stored procedure here
@NewDate DATETIME,
@OldDate DATETIME
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @PlanID INT
DECLARE @PlanName VARCHAR(50)
DECLARE @InspectorID INT
DECLARE @InspectorGroupID INT
DECLARE @Enabled INT
DECLARE @CreateUserID INT
DECLARE @BeginTime DATETIME
DECLARE @EndTime DATETIME
DECLARE @Remark VARCHAR(1000)
DECLARE @count INT
SET @count=0
BEGIN TRAN --启动事务
PRINT '启动事务'
DECLARE @ERROR int
SET @ERROR=0
BEGIN
print '定义游标'
DECLARE syscolumns_cursor CURSOR FOR
SELECT ID,InspectorID,InspectorGroupID,[Enabled],CreateUserID,BeginTime,EndTime,Remark,PlanName
FROM dbo.tblDustPatrolPlan
WHERE BeginTime BETWEEN CONVERT(DATETIME,CONVERT(VARCHAR(8),@OldDate,120)+'01',120)
AND DATEADD(MS,-3,DATEADD(MONTH,1+DATEDIFF(MONTH,0,@OldDate),1)-1)
OPEN syscolumns_cursor
FETCH NEXT FROM syscolumns_cursor INTO @PlanID,@InspectorID,@InspectorGroupID,@Enabled,@CreateUserID,@BeginTime,@EndTime,@Remark,@PlanName
print '打开游标'
print @PlanID
WHILE(@@fetch_status=0)--判断是否读到了记录
BEGIN
print '插入计划'
print @PlanID
print @BeginTime
INSERT INTO dbo.tblDustPatrolPlan(InspectorID,InspectorGroupID,[Enabled],CreateUserID,BeginTime,EndTime,Remark,PlanName)
VALUES(@InspectorID,@InspectorGroupID,@Enabled,@CreateUserID,
CASE WHEN
DAY(@BeginTime)
>
DAY(DATEADD(MS,-3,DATEADD(MONTH,1+DATEDIFF(MONTH,0,@OldDate),1)-1))
THEN
CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),MONTH(@NewDate))+'-'+CONVERT(CHAR(3),
CONVERT(CHAR(3),DAY(DATEADD(MS,-3,DATEADD(MONTH,1,CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),
MONTH(@NewDate))+'-1 0:00:00.000')))))+CONVERT(char(10),@BeginTime,108)))
ELSE
CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),MONTH(@NewDate))+'-'+CONVERT(CHAR(3),DAY(@BeginTime))+CONVERT(char(10),@BeginTime,108))
END,
CASE WHEN
DAY(@EndTime)
>
DAY(DATEADD(MS,-3,DATEADD(MONTH,1+DATEDIFF(MONTH,0,@NewDate),1)-1))
THEN
CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),MONTH(@NewDate))+'-'+CONVERT(CHAR(3),
CONVERT(CHAR(3),DAY(DATEADD(MS,-3,DATEADD(MONTH,1,CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),
MONTH(@NewDate))+'-1 0:00:00.000')))))+CONVERT(char(10),@EndTime,108)))
ELSE
CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),MONTH(@NewDate))+'-'+CONVERT(CHAR(3),DAY(@EndTime))+CONVERT(char(10),@EndTime,108))
END,
@Remark,@PlanName)
SET @count=@count+@@Rowcount
IF (@ERROR <>0) GOTO EXT
print ' 插入任务'
INSERT INTO dbo.tblDustPatrolTask(PlanID,BeginTime,Periodicity,RepeatInterval,AreaID,[Status],InspectorID,[Name],ActionTime,[Description])
SELECT IDENT_CURRENT('tblDustPatrolPlan'),
CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),MONTH(@NewDate))+'-'+CONVERT(CHAR(3),DAY(BeginTime))+CONVERT(char(10),BeginTime,108)),
Periodicity,0,AreaID,0,InspectorID,[Name],null,[Description]
FROM dbo.tblDustPatrolTask
WHERE PlanID = @PlanID
and (BeginTime BETWEEN CONVERT(DATETIME,CONVERT(VARCHAR(8),@OldDate,120)+'01',120)
AND DATEADD(MS,-3,DATEADD(MONTH,1+DATEDIFF(MONTH,0,@OldDate),1)-1))
SET @count=@count+@@Rowcount
PRINT '小计:影响'+CONVERT(VARCHAR,@count)+'行'
SET @ERROR =@ERROR +@@ERROR
IF (@ERROR <>0) GOTO EXT
FETCH NEXT FROM syscolumns_cursor INTO @PlanID,@InspectorID,@InspectorGroupID,@Enabled,@CreateUserID,@BeginTime,@EndTime,@Remark,@PlanName
END
print '结束游标'
CLOSE syscolumns_cursor
DEALLOCATE syscolumns_cursor
--异常出口
EXT:
--判断执行状态
IF (@ERROR =0)
BEGIN
PRINT '提交事务'
COMMIT
END
ELSE
BEGIN
PRINT '回滚事务'
ROLLBACK
END
PRINT '共影响'+CONVERT(VARCHAR,@count)+'行'
END
END
-- Add the parameters for the stored procedure here
@NewDate DATETIME,
@OldDate DATETIME
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @PlanID INT
DECLARE @PlanName VARCHAR(50)
DECLARE @InspectorID INT
DECLARE @InspectorGroupID INT
DECLARE @Enabled INT
DECLARE @CreateUserID INT
DECLARE @BeginTime DATETIME
DECLARE @EndTime DATETIME
DECLARE @Remark VARCHAR(1000)
DECLARE @count INT
SET @count=0
BEGIN TRAN --启动事务
PRINT '启动事务'
DECLARE @ERROR int
SET @ERROR=0
BEGIN
print '定义游标'
DECLARE syscolumns_cursor CURSOR FOR
SELECT ID,InspectorID,InspectorGroupID,[Enabled],CreateUserID,BeginTime,EndTime,Remark,PlanName
FROM dbo.tblDustPatrolPlan
WHERE BeginTime BETWEEN CONVERT(DATETIME,CONVERT(VARCHAR(8),@OldDate,120)+'01',120)
AND DATEADD(MS,-3,DATEADD(MONTH,1+DATEDIFF(MONTH,0,@OldDate),1)-1)
OPEN syscolumns_cursor
FETCH NEXT FROM syscolumns_cursor INTO @PlanID,@InspectorID,@InspectorGroupID,@Enabled,@CreateUserID,@BeginTime,@EndTime,@Remark,@PlanName
print '打开游标'
print @PlanID
WHILE(@@fetch_status=0)--判断是否读到了记录
BEGIN
print '插入计划'
print @PlanID
print @BeginTime
INSERT INTO dbo.tblDustPatrolPlan(InspectorID,InspectorGroupID,[Enabled],CreateUserID,BeginTime,EndTime,Remark,PlanName)
VALUES(@InspectorID,@InspectorGroupID,@Enabled,@CreateUserID,
CASE WHEN
DAY(@BeginTime)
>
DAY(DATEADD(MS,-3,DATEADD(MONTH,1+DATEDIFF(MONTH,0,@OldDate),1)-1))
THEN
CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),MONTH(@NewDate))+'-'+CONVERT(CHAR(3),
CONVERT(CHAR(3),DAY(DATEADD(MS,-3,DATEADD(MONTH,1,CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),
MONTH(@NewDate))+'-1 0:00:00.000')))))+CONVERT(char(10),@BeginTime,108)))
ELSE
CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),MONTH(@NewDate))+'-'+CONVERT(CHAR(3),DAY(@BeginTime))+CONVERT(char(10),@BeginTime,108))
END,
CASE WHEN
DAY(@EndTime)
>
DAY(DATEADD(MS,-3,DATEADD(MONTH,1+DATEDIFF(MONTH,0,@NewDate),1)-1))
THEN
CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),MONTH(@NewDate))+'-'+CONVERT(CHAR(3),
CONVERT(CHAR(3),DAY(DATEADD(MS,-3,DATEADD(MONTH,1,CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),
MONTH(@NewDate))+'-1 0:00:00.000')))))+CONVERT(char(10),@EndTime,108)))
ELSE
CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),MONTH(@NewDate))+'-'+CONVERT(CHAR(3),DAY(@EndTime))+CONVERT(char(10),@EndTime,108))
END,
@Remark,@PlanName)
SET @count=@count+@@Rowcount
IF (@ERROR <>0) GOTO EXT
print ' 插入任务'
INSERT INTO dbo.tblDustPatrolTask(PlanID,BeginTime,Periodicity,RepeatInterval,AreaID,[Status],InspectorID,[Name],ActionTime,[Description])
SELECT IDENT_CURRENT('tblDustPatrolPlan'),
CONVERT(DATETIME,CONVERT(CHAR(4),YEAR(@NewDate))+'-'+CONVERT(CHAR(2),MONTH(@NewDate))+'-'+CONVERT(CHAR(3),DAY(BeginTime))+CONVERT(char(10),BeginTime,108)),
Periodicity,0,AreaID,0,InspectorID,[Name],null,[Description]
FROM dbo.tblDustPatrolTask
WHERE PlanID = @PlanID
and (BeginTime BETWEEN CONVERT(DATETIME,CONVERT(VARCHAR(8),@OldDate,120)+'01',120)
AND DATEADD(MS,-3,DATEADD(MONTH,1+DATEDIFF(MONTH,0,@OldDate),1)-1))
SET @count=@count+@@Rowcount
PRINT '小计:影响'+CONVERT(VARCHAR,@count)+'行'
SET @ERROR =@ERROR +@@ERROR
IF (@ERROR <>0) GOTO EXT
FETCH NEXT FROM syscolumns_cursor INTO @PlanID,@InspectorID,@InspectorGroupID,@Enabled,@CreateUserID,@BeginTime,@EndTime,@Remark,@PlanName
END
print '结束游标'
CLOSE syscolumns_cursor
DEALLOCATE syscolumns_cursor
--异常出口
EXT:
--判断执行状态
IF (@ERROR =0)
BEGIN
PRINT '提交事务'
COMMIT
END
ELSE
BEGIN
PRINT '回滚事务'
ROLLBACK
END
PRINT '共影响'+CONVERT(VARCHAR,@count)+'行'
END
END
相关文章推荐
- 取原月的计划内容作为计划表目标月的计划内容,取原月的任务内容作为任务表目标月的任务内容
- 智能安全实验室-杀马(Defendio) 2.3.0.409 :任务计划,用户可以定时对指定目标进行扫描、智能更新等
- Linux下添加任务计划,计划内容以sh文件表示
- Linux下添加任务计划,计划内容以sh文件表示
- linux 定制任务计划后/var/spool/clientmqueue目录下内容处理
- 目标、项目、任务、行动、计划的概念
- InstallShield 2012 Spring新功能试用(21): 安装过程中可以在目标系统中创建和配置任务计划
- 一个PHP一直执行的例子 不会计划任务可以用这个 PHP+jquery前台动态显示数据库内容
- 任务,行动,目标、绩效管理,计划
- 《程序员》约稿:多任务下的时间管理,目标计划与任务分解
- sql2005执行计划任务错误: 代理XP”组件已作为此服务器安全配置的一部分被关闭
- Windows系统使用vbs脚本或bat脚本强制杀死指定所有进程 vbs实现循环持续写入内容到vbs打开开的记事本 使用vbs、bat添加windows计划任务 使用cmd schtasks命令添加windows计划任务
- squid反向代理作为web前端内容缓存器及局域网内客户机通过代理服务器上网
- 我的服务器开发之路-windows计划任务的使用
- 服务器定时执行计划任务(通过浏览器请求某个链接)
- 链接数据库window平台下使用任务计划定时执行php进行数据库处理
- 使用Windows XP 的任务计划
- C#创建任务计划
- 2014年学习目标计划大纲+资料整理+个人总结
- 详解 如何在 windows 7添加启动项 ,强大的计划任务功能 推荐