首先你要有足够的权限。
然后在SQL 代理里面加一个作业,每天定时执行,里面有配置了。
在作业内容里面使用变量获取当天时间,然后拼接字符串

解决方案 »

  1.   

    建表语句可以这么写:declare @sql varchar(8000)set @sql = 'create table sector'+ convert(varchar(10),getdate(),112)+
               '(' + 'x int' +  ')'
    exec(@sql)
      

  2.   

    这个是建立job的语句,不过需要修改一下,建议把动态创建表的语句 写成一个存储过程,这样方便修改:--1.新建作业 --> 作业步骤 --> 作业调度 --> 作业服务器
    declare @jobname sysname,@db_name sysname
    select @jobname = '动态创建表',
           @db_name = db_name()
    --1.1创建作业
    exec msdb..sp_add_job 
    @job_name=@jobname
    --1.2创建作业步骤
    exec msdb..sp_add_jobstep 
    @job_name=@jobname,
    @step_name = N'数据处理',
        @subsystem = N'TSQL',
        @database_name=@db_name,
        @command = N'exec 你的存储过程名称;',  
        @retry_attempts = 1, 
        @retry_interval = 1  
    --1.3添加作业步骤,每天8点运行一次
    EXEC msdb..sp_add_jobschedule 
    @job_name=@jobname, 
        @name = N'动态创建表',
        @freq_type=4 ,    --间隔为每天
        @freq_interval=1,
    @active_start_time=200000  --8点
    --1.4添加目标服务器
    EXEC msdb.dbo.sp_add_jobserver 
    @job_name = @jobname ,  
    @server_name = '你的服务器名称' --@@servername 这个函数的返回值不一定准确 
    --1.5 开始作业
    exec msdb.dbo.sp_start_job 
    @job_name =N'动态创建表';
      

  3.   

    再问一下,如何写这样的SQL,即创建一个代日期的表呢?
    表明类似于sector2014-12-17或者sector20141217,就是这个表名不好拼接啊。