用存储过程创建表20060926(每天一个) ?20060926是日期?

解决方案 »

  1.   

    Create Proc CreateTable
    As
    Declare @strSQL Varchar(1000) Select @strSQL=Convert(Varchar(8), GetDate(), 112)
    Set @strSQL = 'CREATE TABLE [dbo].[' + @strSQL + '] (
    [ID] [nvarchar] (10) Not NULL ,
    [Data] [nvarchar] (30) Not NULL 
    ) ON [PRIMARY]'

    Exec(@strSQL)GO
      

  2.   

    你可以再加上表是否存在的判断
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TableName]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[TableName]
    GO
      

  3.   

    DECLARE @DATE VARCHAR(10)
    DECLARE @TABLENAME VARCHAR(10)
    DECLARE @SQL VARCHAR(100)
    SELECT @DATE= CONVERT(VARCHAR(10),GETDATE(),120)
    SET @TABLENAME= REPLACE(@DATE,'-','')
    SELECT  @SQL= 'SELECT * INTO #'+@TABLENAME +' FROM A WHERE 1=2'
    PRINT   'SELECT * INTO #'+@TABLENAME +' FROM A WHERE 1=2'還有一點問題 你自己弄下吧
      

  4.   

    關鍵是時間得處理
    SELECT @DATE= CONVERT(VARCHAR(10),GETDATE(),120)
    SET @TABLENAME= REPLACE(@DATE,'-','')
    這樣可以把時間弄成你要求的格式