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=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名或使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
解决方案 »
- 通过链接服务器从mssql2008向mysql导数据报错
- sqlserver2005内存问题
- 还是关于between语句的问题
- 急用
- 如何將字段轉成數字型再sum()
- 这个统计sql能不能实现?
- update更新对应数值
- ASP连接SQL Server的问题
- 怪怪:用bcp导成xls,但字符型的数据'023154'导出后会变成'23154',但在sql 里导出却没有这种情况。何解?
- 要将整个sql server服务器转移到另外一台机器上,怎样做才是最好的呢?(急!!!!)
- 晕~~~怎么DROP不掉这个存储过程?什么原因?分析分析……
- 请教sql server 2000 中查询分析器中如何定义输出重定向?
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名或使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名 select * from 本地库表名或使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
insert 别名.库名.dbo.表名 select * from 本地库表名
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go--查询示例
select * from srv_lnk.数据库名.dbo.表名--导入示例
select * into 表 from srv_lnk.数据库名.dbo.表名go
--处理完成后删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('sqloled'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)
--导入示例
select * into 表 from openrowset('sqloled'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','远程服务器名或ip地址'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'insert into srv_lnk.库名.dbo.表名 select * from 本地表名
运行出错:
ole/db provider returned massage:Multiple-step ole db operation generated errors,check each ole db status valus,if available no work was done
是怎么回事,请回帖
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用户名','密码'
go --这里不能去掉insert into srv_lnk.库名.dbo.表名 select * from 本地表名
--如果一定要在存储过程中使用链接服务器,要这样用:
exec('exec sp_addlinkedserver ''srv_lnk'','''',''SQLOLEDB'',''远程服务器名或ip地址'''
exec('exec sp_addlinkedsrvlogin ''srv_lnk'',''false'',null,''用户名'',''密码'''exec('insert into srv_lnk.库名.dbo.表名 select * from 本地表名'
insert into openrowset('sqloled','sql服务器名';'用户名';'密码',数据库名.dbo.表名)select * from tb1出错提示:
the request for procedure 'tb1' failed because 'tb1' is a table object
insert into openrowset('sqloled','sql服务器名';'用户名';'密码',数据库名.dbo.tb2)select * from tb1出错提示:
the request for procedure 'tb2' failed because 'tb2' is a table object
明明就是说tb2是一个表对象啊,怎么回事啊
use pubs
select * into tb1 from sysobjects where 1<>1
--然后在本地查询分析器中执行:
insert into
openrowset('sqloledb','ymn';'sa';'',pubs.dbo.tb1)
select * from sysobjects 结果是成功的.