SQL Server复制表结构和数据到另一表方法及问题解决方案
2016-05-31 13:58
477 查看
对已经存在的一张表,要把该表的表结构和数据复制到另一张新表中,可以采用的方法有两种。
方法一
select * into test01_02 from test01_01;
把test01_01的表结构和数据(如果有数据)导入到test01_02表中。
注:使用这种方法的前提是test01_02表是不存在的,如果存在执行SQL语句时会报错。
方法二
set identity_insert test01_03 on
insert into test01_03(id,p_name,p_age,p_address) select * from test01_01
set identity_insert test01_03 off
把test01_01的数据导入到test01_03表中,其中id为主键,整型,自动增长。
注:
a.方法二要求test01_03表存在,不存在会报错。
b.如果把方法二改写为:insert into test01_03 select * from test01_01,会报“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'test01_03'中的标识列指定显式值”错误。
c.如果把方法二改写为:
set identity_insert test01_03 on
insert into test01_03 select * from test01_01
set identity_insert test01_03 off
会报“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'test01_03'中的标识列指定显式值”错误。
方法一
select * into test01_02 from test01_01;
把test01_01的表结构和数据(如果有数据)导入到test01_02表中。
注:使用这种方法的前提是test01_02表是不存在的,如果存在执行SQL语句时会报错。
方法二
set identity_insert test01_03 on
insert into test01_03(id,p_name,p_age,p_address) select * from test01_01
set identity_insert test01_03 off
把test01_01的数据导入到test01_03表中,其中id为主键,整型,自动增长。
注:
a.方法二要求test01_03表存在,不存在会报错。
b.如果把方法二改写为:insert into test01_03 select * from test01_01,会报“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'test01_03'中的标识列指定显式值”错误。
c.如果把方法二改写为:
set identity_insert test01_03 on
insert into test01_03 select * from test01_01
set identity_insert test01_03 off
会报“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'test01_03'中的标识列指定显式值”错误。
相关文章推荐
- 推荐Sql server一些常见性能问题的解决方法
- SQL Server存储过程的基础说明
- SQL Server下几个危险的扩展存储过程
- 如何在SQL Server 2008下轻松调试T-SQL语句和存储过程
- SQL Server中选出指定范围行的SQL语句代码
- 一些SQL Server存储过程参数及例子
- SQL Server优化50法汇总
- SQL Server数据库管理员(DBA)的工作内容
- 列出SQL Server中具有默认值的所有字段的语句
- MSSQL数据类型及长度限制详细说明
- SQL SERVER函数之深入表值函数的处理分析
- 浅析Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁
- SQL Server常用存储过程及示例
- Mysql复制表结构、表数据的方法
- SQL Server架构
- java数据类型与Sql server数据类型对应关系
- Execute permission missing on User-Defined table Type
- 复制表的数据
- 在SQL Server中获得不包含时间部分的日期
- SQL Server游标的使用