sql 跨数据库访问

 

一、跨数据库访问

第一种方式

SELECT * FROM OPENDATASOURCE(

 'SQLOLEDB',

 'Data Source=远程ip;User ID=sa;Password=密码'

 ).库名.dbo.表名

 WHERE 条件

第二种方式

在sql server->服务->安全性->链接服务器下建立一个具有别名的链接服务器。然后通过以下方式访问:

SELECT * FROM [链接服务器名].库名.dbo.表名

 WHERE 条件

需要注意的是建立链接数据库服务器类型如果选择“SQL server”,那么链接服务器名称必须用要链接的服务器的在网络中的机器名或IP,如果要使用其它别名,可以在WINDOWS\system32\drivers\etc\hosts文件里添加一个别名的映射。

解除SQL阻止sqlserver 2005情况)
SQL Server 阻止了对组件 ‘Ad Hoc Distributed Queries’ 的 STATEMENT’OpenRowset/OpenDatasource’ 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 ‘Ad Hoc Distributed Queries’。有关启用 ‘Ad Hoc Distributed Queries’ 的详细信息,请参阅 SQL Server 联机丛书中的 外围应用配置器

因为SQL2005默认是没有开启’Ad Hoc Distributed Queries’ 组件,开启方法如下

EXEC sp_configure 'show advanced options', 1

GO

RECONFIGURE

GO

EXEC sp_configure 'Ad Hoc Distributed Queries', 1

GO

RECONFIGURE

GO

关闭Ad Hoc Distributed Queries

exec sp_configure 'Ad Hoc Distributed Queries', 0

reconfigure

exec sp_configure 'show advanced options', 0

reconfigure

二、分布式事务的配置

1.用DTCPing.exe工具测试两台机器的DTC服务是否可以联通。

2.如果有问题检查MSDTC服务是否启动。

3.MSDTC依赖于RPC,RPC使用的端口是135,测试135端口是否打开.是否有防火墙?如果有先关了防火墙.   telnet   IP   135     如果是关闭的打开它.  

4.打开“控制面板->管理工具->组件服务”,然后展开“组件服务->计算机->我的电脑”右键属性。选择MSDTCTab栏,点击安全性配置按钮,打开窗口,将“网络DTC访问”选项选中,并将“允许远程客户端”,“允许入站”,“允许出站”都选中,并选择“不要求进行验证”,“启用事务Internet协议(TIP)事务”,“启用XA事务”都选中。然后确定即可。(以上选项windows默认不开放,必须配置)

5.检查你的两台服务器是否在同一个域中.  如果不在同一个域中,是否建立可信任联接.  

6.如果是WIN2000,升级到SP4   

7.确认MDAC版本是2.6以上,最好是2.8.  

8.在SQL server存储过程中使用分布式事务时,必须SET   XACT_ABORT   ON --设置分布式事务如果发生问题主动回滚操作

9.可以声明使用BEGIN DISTRIBUTED TRANSACTION,如果未明确生明,在事务块中包含链接服务器的访问,SQL server会自动升级成分布式事务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值