1、创建表 declare @s varchar(3000) set @s='create table '+quotename(convert(varchar(10),getdate(),120))+' (a int,b varchar(100))'exec(@s) 2、将前一天数据转移到月表储存 declare @s varchar(3000) set @s='insert into '+quotename(convert(varchar(10),getdate(),120))+'select * from tb where quotename[datetime]=dateadd(day,-1,getdate)' exec(@s)设置作业的时候,写出这些sql语句。最好先试试,没有进行测试
做一个job系统定时导不就可以了吗?
1、if not exists(select 1 from sysobjects where name=convert(varchar(10),getdate(),120) begin declare @s varchar(3000) set @s='create table '+quotename(convert(varchar(10),getdate(),120))+' (a int,b varchar(100))' exec(@s) end 2、declare @s varchar(3000) set @s='insert into '+quotename(convert(varchar(10),getdate(),120))+'select * from tb where quotename[datetime]=dateadd(day,-1,getdate)' exec(@s) delete tb where quotename[datetime]=dateadd(day,-1,getdate)这样?
insert into 月表 select * from 日表
综合楼上的应该可以解决我添加一点意见,因为是多条DDL语句,在存储过程中加入事务。begin try BEGIN TRANSACTION myTran commit transaction myTran end try begin catch --加入你自己的异常LOG rollback TRANSACTION myTran end catch
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
EXEC 存储过程名 ... --该存储过程用于创建表 --确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
declare @s varchar(3000)
set @s='create table '+quotename(convert(varchar(10),getdate(),120))+' (a int,b varchar(100))'exec(@s)
2、将前一天数据转移到月表储存
declare @s varchar(3000)
set @s='insert into '+quotename(convert(varchar(10),getdate(),120))+'select * from tb where quotename[datetime]=dateadd(day,-1,getdate)'
exec(@s)设置作业的时候,写出这些sql语句。最好先试试,没有进行测试
begin
declare @s varchar(3000)
set @s='create table '+quotename(convert(varchar(10),getdate(),120))+' (a int,b varchar(100))' exec(@s)
end
2、declare @s varchar(3000)
set @s='insert into '+quotename(convert(varchar(10),getdate(),120))+'select * from tb where quotename[datetime]=dateadd(day,-1,getdate)'
exec(@s)
delete tb where quotename[datetime]=dateadd(day,-1,getdate)这样?
BEGIN TRANSACTION myTran commit transaction myTran
end try begin catch
--加入你自己的异常LOG
rollback TRANSACTION myTran
end catch