先判断数据库中是否存在这个表,如果不存在就建立这样一个表,例如,要以日期作为表名称创建表,今天第一次执行此程序时,建立一个名字为“2004-09-05”的表(之后在向表里插入记录),但今天第二次运行这个程序是就不建立这个表,直接向这个表里面插入记录就行了,明天第一次运行时在建立一个表名为“2004-09-06”的表   
  想问的是今天第二次执行程序时怎么判断已经存在这个表“2004-09-05”了?  

解决方案 »

  1.   

    if object_id('[tb]') is  null 
     create table [tb]([col] varchar(2))
      

  2.   

    if object_id('tb') is not null
      create table tb(col....
      

  3.   

    if exists ( select 1 from sysobjects where xtype = 'u' and name = '2004-09-05' )
    begin
    -- 直接向这个表里面插入记录
    end
    else
    begin
    -- 建立一个的表(之后在向表里插入记录)
    end
      

  4.   


    if object_id('表名') is not null
      create table 表名(列名 类型,..表定义
      

  5.   


    declare @table varchar(10)
    set @table=convert(varchar(10),getdate(),120)if object_id(@table) is null
      exec('create table ['+@table+'](col int)')drop table [2009-05-08]
      

  6.   

    declare @tablename varchar(50)
    select @tablename= CONVERT(varchar(8) , getdate(), 112)
    if exists(select name from sysobjects where xtype='u' and name=@tablename)
    exec ('insert '+@tablename+' select  * from tb')
    else
       exec ('create table '+@tablename+'(col1 int,col2 varchar(50))')
      

  7.   

    declare @Tablename varchar(50);
    set @Tablename = 'TB' + convart(varchar(8),getdate(),112);
    if exists ( select 1 from sys.tables where name=@Tablename)
      exec ('create table ' + @Tablename + ' (
           col1 int not null,
           ...
           )')
      

  8.   

    declare @Tablename varchar(50);
    set @Tablename = 'TB' + convart(varchar(8),getdate(),112);
    if not exists ( select 1 from sys.tables where name=@Tablename)
      exec ('create table ' + @Tablename + ' (
           col1 int not null,
           ...
           )')
      

  9.   

    declare @tablename varchar(50)
    --把当天日期作为表名
    select @tablename= CONVERT(varchar(8) , getdate(), 112)
    --如果表存在,则插入数据
    if exists(select name from sysobjects where xtype='u' and name=@tablename)
    exec ('insert ['+@tablename+'] select  * from tb')
    --如果表不存在,则建表。
    else
       exec ('create table ['+@tablename+'](col1 int,col2 varchar(50))')
      

  10.   

      
    select @tablename= CONVERT(varchar(8) , getdate(), 112)

    select 改成 SET吧???
      

  11.   

    不是,就这么写,我测试过了,没问题。
    如果要SET的话,你要这么写:
    set @tablename= (select CONVERT(varchar(8) , getdate(), 112) )
      

  12.   

    set 和 select 都可以给变量赋值。
      

  13.   

    我想咨询一下,create table 表名,这个表名如果是变量的话,应该如何书写.我自己写成这样的,['+i+'],i为变量,不对,创建了一个名为'+i+'的一个表格,不是我想要的i变量里存放的值的名字.