SQLSERVER数据库中如何将一个表中的数据拷贝到另一个表中?

时间:2022-02-07 10:40:26
使用程序来做很容易。
现在就是想让数据库自己来实现。

17 个解决方案

#1


insert into 表1(字段....) select 字段。。。from 表2

#2


insert into a
select * from b

insert into a(字段1,字段2)
select 字段1,字段2 from b

#3


select * into aaaaa from aa

#4


select * into aaaaa(不存在的表) from aa

#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 a; 

#6


这是SQL语句,如何让这些SQL语句自动执行

#7


没人回答了?

#8


引用 6 楼 zteclx 的回复:
这是SQL语句,如何让这些SQL语句自动执行


开代理服务,建立一个JOB,定时执行上面达人给你的那些SQL语句。

#9


顶2 楼

#10


建立了作业,但是新建步骤时总报错,insert into a select  * from 表 b“错误208,对象名a无效,对象名b无效”。不知什么原因?

步骤如下:
--创建作业的方法:         
            
      企业管理器         
      --管理         
      --SQL       Server代理         
      --右键作业         
      --新建作业         
      --"常规"项中输入作业名称         
      --"步骤"项         
      --新建         
      --"步骤名"中输入步骤名         
      --"类型"中选择"Transact-SQL       脚本(TSQL)"         
      --"数据库"选择执行命令的数据库         
      --"命令"中输入要执行的语句:         
    --你的SQL语句或存储过程   
      --确定         
      --"调度"项         
      --新建调度         
      --"名称"中输入调度名称         
      --"调度类型"中选择你的作业执行安排         
      --如果选择"反复出现"         
      --点"更改"来设置你的时间安排         
            
            
      然后将SQL       Agent服务启动,并设置为自动启动,否则你的作业不会被执行         
            
      设置方法:         
      我的电脑--控制面板--管理工具--服务--右键       SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定

#11


 表名要用实际的表名......orz

#12


用了实际的表名也报错

#13


SELECT * INTO B from A

#14



insert into a select  * from 表 b“错误208,对象名a无效,对象名b无效

确定2个表是否在同一个数据库,确定表是否存在
确定表内是否有自增,确定好表字段!

#15


才20分,

僧多粥少~

#16


有约束、触发器都要先禁用掉,否则会影响其他的表。
自增列如果也需要一致,可truncate一下,这样自增列就会重新开始,但是不能回滚了。
也可用set indent_insert on/off。

#17


fredrickhu说得最经典了!

#1


insert into 表1(字段....) select 字段。。。from 表2

#2


insert into a
select * from b

insert into a(字段1,字段2)
select 字段1,字段2 from b

#3


select * into aaaaa from aa

#4


select * into aaaaa(不存在的表) from aa

#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 a; 

#6


这是SQL语句,如何让这些SQL语句自动执行

#7


没人回答了?

#8


引用 6 楼 zteclx 的回复:
这是SQL语句,如何让这些SQL语句自动执行


开代理服务,建立一个JOB,定时执行上面达人给你的那些SQL语句。

#9


顶2 楼

#10


建立了作业,但是新建步骤时总报错,insert into a select  * from 表 b“错误208,对象名a无效,对象名b无效”。不知什么原因?

步骤如下:
--创建作业的方法:         
            
      企业管理器         
      --管理         
      --SQL       Server代理         
      --右键作业         
      --新建作业         
      --"常规"项中输入作业名称         
      --"步骤"项         
      --新建         
      --"步骤名"中输入步骤名         
      --"类型"中选择"Transact-SQL       脚本(TSQL)"         
      --"数据库"选择执行命令的数据库         
      --"命令"中输入要执行的语句:         
    --你的SQL语句或存储过程   
      --确定         
      --"调度"项         
      --新建调度         
      --"名称"中输入调度名称         
      --"调度类型"中选择你的作业执行安排         
      --如果选择"反复出现"         
      --点"更改"来设置你的时间安排         
            
            
      然后将SQL       Agent服务启动,并设置为自动启动,否则你的作业不会被执行         
            
      设置方法:         
      我的电脑--控制面板--管理工具--服务--右键       SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定

#11


 表名要用实际的表名......orz

#12


用了实际的表名也报错

#13


SELECT * INTO B from A

#14



insert into a select  * from 表 b“错误208,对象名a无效,对象名b无效

确定2个表是否在同一个数据库,确定表是否存在
确定表内是否有自增,确定好表字段!

#15


才20分,

僧多粥少~

#16


有约束、触发器都要先禁用掉,否则会影响其他的表。
自增列如果也需要一致,可truncate一下,这样自增列就会重新开始,但是不能回滚了。
也可用set indent_insert on/off。

#17


fredrickhu说得最经典了!