摘自大力:
select * into 本地库名..表名 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名或使用联结服务器:
EXEC sp_addlinkedserver
'别名',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go
select * into 本地库名..表名 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名或使用联结服务器:
EXEC sp_addlinkedserver
'别名',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名或使用联结服务器:
EXEC sp_addlinkedserver
'别名',
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go
exec sp_addlinkedsrvlogin @rmtsrvname = '192.168.2.44',
@useself = false ,
@locallogin = 'sa',
@rmtuser = 'sa' ,
@rmtpassword = null
直接用Sql语句传输数据
select * from [192.168.2.44].zlsgl.dbo.t_cby update [192.168.2.44].zlsgl.dbo.t_cby set xm = rtrim(xm) + '1' where bh = 4
select C1,C2,C3,C4 from 别名.Database1.dbo.Table1
insert Database2.dbo.Table2 select C1,C2,C3,C4 from 别名.Database1.dbo.Table1
我只是提取了Table1的部分字段,对Table2部分更新
///select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
上面的还有字段之间的转换,要怎么做呢?谢谢!
服务器: 消息 8101,级别 16,状态 1,行 6
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'Database2.Table2
' 中为标识列指定显式值。
select * into 本地库名..表名 from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名select * into .....可以在没建立新表的情况下,把目前数据库表复制过来。
而insert into .... select .... 必须先建立表才能复制。
我是菜鸟 有疑问就提了。对不住楼主啦。
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名-----------------上面的是建新表,下面的是对已有的表追加数据insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
服务器: 消息 8101,级别 16,状态 1,行 6
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'Database2.Table2
' 中为标识列指定显式值。
--------------------------------------------
是应为你的表有标识(自增)列如编号你可以 insert 表 (除了标识列外的列) select (与前面对应的列)......如果你能保证标识列的数据与新的数据不重复:
插入标识列值
SET IDENTITY_INSERT 表 ON
insert 表 select *......
SET IDENTITY_INSERT 表 OFF