declare @sql varchar(1000)declare @tablename varchar(20)
select @tablename = ‘2003-08-12-jack’
set @sql = '
CREATE TABLE [dbo].[@tablename] (
[po_no] [varchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
[user_name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[reason] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[money] [numeric](12, 2) NULL ,
[add_date] [datetime] NULL 
) ON [PRIMARY]
'
exec(@sql)

解决方案 »

  1.   

    sorry,应为:
    declare @sql varchar(1000)declare @tablename varchar(20)
    select @tablename = ‘2003-08-12-jack’
    set @sql = '
    CREATE TABLE [dbo].' + @tablename + '(
    [po_no] [varchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
    [user_name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [reason] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    [money] [numeric](12, 2) NULL ,
    [add_date] [datetime] NULL 
    ) ON [PRIMARY]
    '
    exec(@sql)
      

  2.   

    declare @aaa varchar(255)
    set @aaa='表名'exec('create table '+@aaa+' (a int,b int)')
      

  3.   

    declare @tablename varchar(20)
    select @tablename = '2003-08-12-jack'
    exec('CREATE TABLE [dbo].['+@tablename+'] (
    [po_no] [varchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
    [user_name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [reason] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    [money] [numeric](12, 2) NULL ,
    [add_date] [datetime] NULL 
    ) ON [PRIMARY]')
      

  4.   

    declare @tablename varchar(20)
    select @tablename = ‘2003-08-12-jack’
    exec ('CREATE TABLE [dbo].['+@tablename+'] (
    [po_no] [varchar] (12) COLLATE Chinese_PRC_CI_AS NULL ,
    [user_name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [reason] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    [money] [numeric](12, 2) NULL ,
    [add_date] [datetime] NULL 
    ) ON [PRIMARY]')
      

  5.   

    declare @aaa varchar(255)
    set @aaa='表名'exec('create table '+@aaa+' (a int,b int)')