sqlserver数据库中把一张表中的数据复制到另一张表中

1.自动创建新表跟原表一样的结构,并复制数据(table2不用存在,会自动创建)

select *  into table2 from table1

2.复制table1的数据到table2(前提:table2必须已经存在)

insert into table2 select * from table1

3.只复制部分表结构到新表

select id,name  into table2 from table1 where 1= 2

where 1= 2表示条件不成立,条件不成立的情况下,只复制表的结构。

4.如果跨服务器,复制数据库某一个表到另一个数据库中

select * INTO [SMSDB].[dbo].[SysLog] FROM openrowset('sqloledb','目标服务器';'账号';'密码',[SMSDB].[dbo].[SysLog])

将数据库目标服务器中的SysLog表复制本地的数据库SMSDB中

如果出现以下错误:

解决方法:

系统管理员可以在本地SQL中通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'

exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure

使用完成后,关闭Ad Hoc Distributed Queries:

exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure