谢谢(了缘):您的想法给我提供了一个非常爽的思路:不知道是否可行,但是在我的服务器上没有验证通过: 1。因为远程的DB Server是在远程局域网里面,所以,我利用端口映射,把该DBServer的1433端口映射成为该局域网里面一个连接公网的Server上,端口为:9000 2。在我本地建立ODBC连接,期间过程需要指定固定的端口号,也就是9000,已经连接测试通过; 3。我的数据访问量会比较大,没有通过您的脚本来建立,因为我测试好像是不能通过,因此: 4。在我本地建立“链接服务器”,“常规”选项里面,我选择“其他数据源”,选择“Microsoft OLE DB Provider for SQL Server”,产品名称:填入:Sql Server,数据源:我填入刚刚建立的那个数据源名称,然后点击确定 5。在浏览该连接服务器的表是视图时,仍然报错不可用不知道您的经历是如何的呢?
wutao411(了缘)看起来不错,试先!
问题解决,感谢了缘 问题出在选择数据源类型错误,应该是ODBC Driver
但是新的问题又来了 我在本地数据库和这个连接服务器的数据库建立关联进行更新的时候,提示如下错误: ************************************************************************** 服务器: 消息 7391,级别 16,状态 1,过程 Trigger_USERINFO_UPDATE,行 13 该操作未能执行,因为 OLE DB 提供程序 'MSDASQL' 无法启动分布式事务。 [OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver]Distributed transaction error] OLE DB 错误跟踪[OLE/DB Provider 'MSDASQL' ITransactionJoin::JoinTransaction returned 0x8004d00a]。 ************************************************************************** 看SQL的联机帮助是应该建立: 可以将数据转换服务 (DTS) 包注册为链接服务器,并对该包发出分布式查询
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','stsoft'
go
--访问不同电脑上的数据库
--如果经常访问或数据量大,建议用链接服务器
--创建链接服务器
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.表名)
1。因为远程的DB Server是在远程局域网里面,所以,我利用端口映射,把该DBServer的1433端口映射成为该局域网里面一个连接公网的Server上,端口为:9000
2。在我本地建立ODBC连接,期间过程需要指定固定的端口号,也就是9000,已经连接测试通过;
3。我的数据访问量会比较大,没有通过您的脚本来建立,因为我测试好像是不能通过,因此:
4。在我本地建立“链接服务器”,“常规”选项里面,我选择“其他数据源”,选择“Microsoft OLE DB Provider for SQL Server”,产品名称:填入:Sql Server,数据源:我填入刚刚建立的那个数据源名称,然后点击确定
5。在浏览该连接服务器的表是视图时,仍然报错不可用不知道您的经历是如何的呢?
问题出在选择数据源类型错误,应该是ODBC Driver
我在本地数据库和这个连接服务器的数据库建立关联进行更新的时候,提示如下错误:
**************************************************************************
服务器: 消息 7391,级别 16,状态 1,过程 Trigger_USERINFO_UPDATE,行 13
该操作未能执行,因为 OLE DB 提供程序 'MSDASQL' 无法启动分布式事务。
[OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver]Distributed transaction error]
OLE DB 错误跟踪[OLE/DB Provider 'MSDASQL' ITransactionJoin::JoinTransaction returned 0x8004d00a]。
**************************************************************************
看SQL的联机帮助是应该建立:
可以将数据转换服务 (DTS) 包注册为链接服务器,并对该包发出分布式查询