-访问不同电脑上的数据库(远程只要联好网就一样)
--如果经常访问或数据量大,建议用链接服务器
--创建链接服务器
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(
'SQLOLEDB'
,
'sql服务器名'
;
'用户名'
;
'密码'
,数据库名.dbo.表名)
--导入示例
select
*
into
表
from
openrowset(
'SQLOLEDB'
,
'sql服务器名'
;
'用户名'
;
'密码'
,数据库名.dbo.表名)
------------------------------------------------------------------------------
正 文:
有的时候,我们要访问其它 SQL Server的数据库,我们可以通过一个视图使用
OPENDATASOURCE (SQL Server 2000 以上版本支持) 来完成。
例如:
Create VIEW [dbo].[vTableName]
AS
Select *
FROM
OPENDATASOURCE(
'SQLOLEDB',
'PWD=loginPassword;UID=otherServerUserID;Initial Catalog=databaseName;SERVER=dataServer'
).databaseName.dbo.[tableName]
GO
通过UID、PWD的身份访问另一个数据库服务器。
其中:
PWD : 是指另一个数据库服务器的登录密码
UID : 是指另一个数据库服务器的登录ID(用户名)
Initial Catalog : 指明数据库
SERVER : 指明服务器
我们可以如下方法读取数据:
Select * FROM [dbo].[vTableName]