sql语句跨服务器跨数据库执行

第一种方法:

select * from OPENDATASOURCE('SQLOLEDB','server=服务器ip;uid=sa;pwd=密码').库名.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
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go


如果是Access数据库

select * from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','my.mdb')...表名


Access数据库,别名方法

sp_addlinkedserver 'jcmdb','OLE DB Provider for Jet','Microsoft.Jet.OLEDB.4.0','my.mdb';
sp_addlinkedsrvlogin 'jcmdb', false, 'sa', 'Admin', NULL
以上两行只要在查询分析器中执行一次。

然后就可以在程序中使用:

select * from jcmdb...表名
posted on 2010-01-06 15:29  fery  阅读(385)  评论(0编辑  收藏  举报