本来有个表(表1),好多列,也添加了好多行数据。
但表的设计要改,可能要删掉一些列,但我现在不想完全不要现在这个表,先留着。
就是说,要么再建一个表2,根据表1的建表语句(SQL Server 2005有这个功能,导出建表语句)
去年一些列就行了。再怎么把表1的N行数据添加到表2呢?列很多写起来可能麻烦。
还有第二个方案,就是直接修改表1,删掉一些列,但在这之前,想克隆一个表1,怎么办?

解决方案 »

  1.   

    select  *  from 表1 into  表2
      

  2.   

    再建一张表2,insert into 表2 select * from 表1
      

  3.   

    这里有个问题,建表语句
    CREATE TABLE [dbo].[ContrlPoint](
    )CONSTRAINT [PK_ContrlPoint] PRIMARY KEY CLUSTERED 
    (
    [CPPK] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]报错,说PK_ContrlPoint重名了。
    原来有个ContrlPoint表, CPPK是主键名
    现在把原来的ContrlPoint表改名了,叫ContrlPointOld,但SQL Server自动生成的CONSTRAINT [PK_ContrlPoint]这个东西还在,怎么办?
      

  4.   

    CREATE TABLE [dbo].[ContrlPoint](
    )CONSTRAINT [PK_ContrlPoint_new] PRIMARY KEY CLUSTERED  
    (
    [CPPK] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
      

  5.   

    1、说明:复制表(只复制结构,源表名:A 新表名:B) (ACCESS可用)法一:SELECT * INTO B FROM A WHERE 1<>1
    法二:SELECT TOP 0 * INTO B FROM A                                                                   
    2、说明:拷贝表(拷贝数据,源表名:A 目标表名:B) (ACCESS可用)
    INSERT INTO B(A, B, C) SELECT D,E,F FROM B;3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (ACCESS可用)
    INSERT INTO B(A, B, C) SELECT D,E,F FROM B IN ‘具体数据库’ WHERE 条件
    例子:..FROM B IN '"&SERVER.MAPPATH(".")&"\DATA.MDB" &"' WHERE..
      

  6.   

    你可以导出表1的建表语句,将表1修改成表2,然后执行生成表2,
    再然后执行inert into 表2 select * from 表1将表1的记录全部拷贝到表2。
      

  7.   

    我想表名跟CONSTRAINT 对应啊……
      

  8.   

    仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'ContrlPoint'中的标识列指定显式值。
    主键那个不可 
      

  9.   

    楼主是怕麻烦,其实直接鼠标右键点表上,有insert、select的,自动生成SQL语句