怎样在sqlserver中按日期每天生成一个数据表     表名为“20090417” 这种形式?
系统按日期每天自动的创建    有什么好的解决方法吗?'------------表结构-----------
id       int    自动增加
uid      varchar(50)
ip       vachar(50)
intime   datetime
ture     int
inout    int
click    vachar(200)

解决方案 »

  1.   

    --把下面语句放在一个作业里,每天凌晨执行一次。
    declare @tb varchar(10),@str varchar(8000)
    select @tb=convert(varchar(10),getdate(),112)
    set @str='create table ['+ @tb +'](id int identity(1,1),uid varchar(50), ip varchar(50),intime  datetime,[ture] int ,inout    int ,  click    varchar(200))'
    print @str
    exec (@str)
    --SQL SERVER2000为例企业管理器—>数据库服务器—>管理目录—>SQL SERVER代理—>作业—>右键 选—>新建常规选项页—>输入作业名称—>选中所有者。步骤选项页—>新建—>输入步骤名—>类型 TSQL脚本—>选择需要执行的数据库—>在命令框里输入你的SQL 脚本:如:update tb set 状态= ...  where 日期...........你可以点左下角的【分析】按钮,分析一下语法,分析无误,按确定。调度选项页—>新建调度—>输入调度名称—>调度类型 你可以选择也可以点右下角的【更改】按钮进行更改,确定。任务栏 SQL SERVER服务器的小图标 双击 服务 选中 SQL SERVER AGENT,点【开始/继续】,选中当启动OS时,自动启动服务,就可以了。到你定的那个时间点,SQL SERVER会自动去执行你的脚本的。
      

  2.   

    --把下面语句放在一个作业里,每天凌晨执行一次。
    declare @tb varchar(10),@str varchar(8000)
    select @tb=convert(varchar(10),getdate(),112)
    set @str='create table ['+ @tb +'](id int identity(1,1),uid varchar(50), ip varchar(50),intime  datetime,[ture] int ,inout    int ,  click    varchar(200))'
    print @str
    exec (@str)
    --SQL SERVER2000为例企业管理器—>数据库服务器—>管理目录—>SQL SERVER代理—>作业—>右键 选—>新建常规选项页—>输入作业名称—>选中所有者。步骤选项页—>新建—>输入步骤名—>类型 TSQL脚本—>选择需要执行的数据库—>在命令框里输入你的SQL 脚本:如:update tb set 状态= ...  where 日期...........你可以点左下角的【分析】按钮,分析一下语法,分析无误,按确定。调度选项页—>新建调度—>输入调度名称—>调度类型 你可以选择也可以点右下角的【更改】按钮进行更改,确定。任务栏 SQL SERVER服务器的小图标 双击 服务 选中 SQL SERVER AGENT,点【开始/继续】,选中当启动OS时,自动启动服务,就可以了。到你定的那个时间点,SQL SERVER会自动去执行你的脚本的
      

  3.   

    每天跑作业
    declare @sql varchar(1000)
    set @sql='create table ['+convert(varchar(8),getdate()+1,112)+'] (a int)'建明天的表
      

  4.   

    declare @a varchar(20)
    set @a = CONVERT(varchar(10),getdate(),112)
    declare @b varchar(8000)
    set @b=
    'create table [' + @a + '](id int identity(1,1),[uid] varchar(50),
           ip varchar(50),intime datetime,ture int,inout int,
           click varchar(200))'
    print @b
    exec (@b)
      

  5.   

    --把下面语句放在一个作业里,每天凌晨执行一次。
    declare @tb varchar(10),@str varchar(8000)
    select @tb=convert(varchar(10),getdate(),112)
    set @str='create table ['+ @tb +'](id int identity(1,1),uid varchar(50), ip varchar(50),intime  datetime,[ture] int ,inout    int ,  click    varchar(200))'
    print @str
    exec (@str)
    --SQL SERVER2000为例企业管理器—>数据库服务器—>管理目录—>SQL SERVER代理—>作业—>右键 选—>新建常规选项页—>输入作业名称—>选中所有者。步骤选项页—>新建—>输入步骤名—>类型 TSQL脚本—>选择需要执行的数据库—>在命令框里输入你的SQL 脚本:
    declare @tb varchar(10),@str varchar(8000)
    select @tb=convert(varchar(10),getdate(),112)
    set @str='create table ['+ @tb +'](id int identity(1,1),uid varchar(50), ip varchar(50),intime  datetime,[ture] int ,inout    int ,  click    varchar(200))'
    print @str
    exec (@str)
    你可以点左下角的【分析】按钮,分析一下语法,分析无误,按确定。调度选项页—>新建调度—>输入调度名称—>调度类型 你可以选择也可以点右下角的【更改】按钮进行更改,选择每天凌晨如1点:确定。任务栏 SQL SERVER服务器的小图标 双击 服务 选中 SQL SERVER AGENT,点【开始/继续】,选中当启动OS时,自动启动服务,就可以了。到你定的那个时间点,SQL SERVER会自动去执行你的脚本的。
      

  6.   

    declare @tb varchar(20),@sql varchar(8000)
    set @tb=convert(varchar(8),getdate(),112)set @sql='
    [id]      int  identity(1,1),
    [uid]      varchar(50), 
    [ip]      varchar(50), 
    [intime]  datetime, 
    [ture]    int, 
    [inout]    int, 
    [click]    varchar(200) 
    '
    exec ('create table ['+@tb+']('+@sql+')')select * from [20090418]/**
    id          uid                                                ip                                                 intime                                                 ture        inout       click                                                                                                                                                                                                    
    ----------- -------------------------------------------------- -------------------------------------------------- ------------------------------------------------------ ----------- ----------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- (所影响的行数为 0 行)
    **/
      

  7.   

    谢谢各位 !
    谢谢sdhdy  ,感觉你的应该能搞定!
    我做好了 明天测试测试就行了  
    谢谢~
      

  8.   

    建表时 ,我想指定默认值该怎么写呢?比如 
    '------------表结构----------- 
    id      int    自动增加 
    uid      varchar(50) 
    ip      vachar(50)     默认0.0.0.0
    intime  datetime        默认当前系统时间
    ture    int             默认是0
    inout    int            默认是10
    click    vachar(200)   默认是0
      

  9.   

    --这样
    declare @tb varchar(10),@str varchar(8000)
    select @tb=convert(varchar(10),getdate(),112)
    set @str='create table ['+ @tb +'](id int identity(1,1),uid varchar(50), ip varchar(50) default(''0.0.0.0''),
    intime  datetime default(getdate()),[ture] int default(0) ,inout    int default(10) ,  click    varchar(200) default(0))'
    print @str
    exec (@str)
    /*
    --这是打印出来的建表语句
    create table [20090418](id int identity(1,1),uid varchar(50), ip varchar(50) default('0.0.0.0'),
    intime  datetime default(getdate()),[ture] int default(0) ,inout    int default(10) ,  click    varchar(200) default(0))
    */
      

  10.   


    Create Table 表名
    (
    ID int identity(1,1),
    Uid varchar(50),
    Ip varchar(50) NOT NULL DEFAULT '0.0.0.0',
    Intime datetime DEFAULT GETDATE(),
    Ture int DEFAULT 0,
    Inout int DEFAULT 10,
    Click varchar(200) DEFAULT '0'   
    )