试试
alter PROCEDURE dbo.[tablename]
(
@field1 nvarchar(50)
)
ASdeclare @sql varchar(8000)set @sql = 
'cREATE TABLE dbo.[' + @xx + ']
(
序号 int NOT NULL IDENTITY (1, 1),
字段1 nvarchar(50) NULL,
)  ON [PRIMARY]
GO'exec (@sql)

解决方案 »

  1.   

    试试
    alter PROCEDURE dbo.[tablename]
    (
    @field1 nvarchar(50)
    )
    ASdeclare @sql varchar(8000)set @sql = 
    'cREATE TABLE dbo.[' + @xx + ']
    (
    序号 int NOT NULL IDENTITY (1, 1),
    字段1 nvarchar(50) NULL,
    )  ON [PRIMARY]
    'exec (@sql)GO
      

  2.   

    这是我以前写的,没有问题的,楼主参考一下吧
    --根据参数动态创建表及字段
    CREATE PROCEDURE dbo.pro_Ins_AutoTable
    @name varchar(50),
    @count int
    as
    declare @tbName varchar(50)
    set @tbName='tb'+rtrim(ltrim(@name))+rtrim(ltrim(str(@count)))
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].['+@tbName+']') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    return;
    declare @i int,
    @tmp varchar(2000)
    set @i=1
    set @tmp=''
    while @i<=@count
    begin
    set @tmp=@tmp+'[f'+rtrim(ltrim(str(@i)))+'] [int] NOT NULL,'
    set @i=@i+1
    end
    exec('CREATE TABLE [dbo].['+@tbName+'] (
    [id] [int] IDENTITY (1, 1) NOT NULL ,
    [name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    '+@tmp+'
    [re] [varchar] (2000) COLLATE Chinese_PRC_CI_AS NULL ,
    [date] [datetime] NULL 
    ) ON [PRIMARY]')
    exec('ALTER TABLE [dbo].['+@tbName+'] WITH NOCHECK ADD 
    CONSTRAINT [PK_'+@tbName+'] PRIMARY KEY  CLUSTERED 
    (
    [id]
    )  ON [PRIMARY] ')
    GO
      

  3.   

    CREATE PROCEDURE dbo.[xxxxx]
    (
    @xx nvarchar(50)
    )
    ASdeclare @sql varchar(8000)set @sql = 
    'cREATE TABLE dbo.[' + @xx + ']
    (
    序号 int NOT NULL IDENTITY (1, 1),
    字段1 nvarchar(50) NULL,
    )  ON [PRIMARY]
    'exec (@sql)
    上面的这个好用