exec('
CREATE TABLE  '@m+' (
[id] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
[name] [char] (18) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[bookcode] [numeric](18, 0)  NOT NULL ')

解决方案 »

  1.   

    //既如何以另一张表中的字段为表名建表。你那樣建不對的,用下面語句select top 0 * into 新表名 from 表名新表名與原來的表結構完全一樣
      

  2.   

    --最好前面要判断一下,这个表是否已经存在
    if exists(select * from dbo.sysobjects where id = object_id(@m) and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    exec('drop table '+@m)exec('
    CREATE TABLE  '@m+' (
    [id] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
    [name] [char] (18) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [bookcode] [numeric](18, 0)  NOT NULL ')
      

  3.   

    [id] [numeric](18, 0) IDENTITY (1, 1) NOT NULL 这种好象是sybase的写法吧?
      

  4.   

    --最好前面要判断一下,这个表是否已经存在
    if exists(select * from dbo.sysobjects where id = object_id(@m) and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    exec('drop table '+@m)exec('
    CREATE TABLE  '@m+' (
    [id] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
    [name] [char] (18) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [bookcode] [numeric](18, 0)  NOT NULL ')