--创建链接服务器 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.表名--以后不再使用时删除链接服务器 exec sp_dropserver 'srv_lnk','droplogins' go--如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB' ,'sql服务器名';'用户名';'密码' ,数据库名.dbo.表名) --导入示例 select * into 表 from openrowset('SQLOLEDB' ,'sql服务器名';'用户名';'密码' ,数据库名.dbo.表名)
连接后 select * from srv_lnk.数据库名.dbo.表名错误srv_lnk.数据库名.dbo.表名 无效或无权限
服务器: 消息 7314,级别 16,状态 1,行 1 OLE DB 提供程序 'srv_lnk' 不包含表 '"db1"."dbo"."test"'。该表可能不存在,或当前用户没有使用该表的权限。 OLE DB 错误跟踪[Non-interface error: OLE DB provider does not contain the table: ProviderName='srv_lnk', TableName='"da1"."dbo"."test"']。
不知道哪里写错了?详细写一次 例:远程数据库名db1,表名test,ip=xxx.xxx.x.xxexec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','xxx.xxx.x.xx' exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'test','123456' go select * from srv_lnk.da1.dbo.test这样写对吗?
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.表名--以后不再使用时删除链接服务器
exec sp_dropserver 'srv_lnk','droplogins'
go--如果只是临时访问,可以直接用openrowset
--查询示例
select * from openrowset('SQLOLEDB'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)
--导入示例
select * into 表 from openrowset('SQLOLEDB'
,'sql服务器名';'用户名';'密码'
,数据库名.dbo.表名)
OLE DB 提供程序 'srv_lnk' 不包含表 '"db1"."dbo"."test"'。该表可能不存在,或当前用户没有使用该表的权限。
OLE DB 错误跟踪[Non-interface error: OLE DB provider does not contain the table: ProviderName='srv_lnk', TableName='"da1"."dbo"."test"']。
例:远程数据库名db1,表名test,ip=xxx.xxx.x.xxexec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','xxx.xxx.x.xx'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'test','123456'
go
select * from srv_lnk.da1.dbo.test这样写对吗?