我正在使用ColdFusion 9.1。
我需要在一些查询中使用两个不同的数据源。我知道它可以完成,因为我看到其他代码使用两个不同的数据源,它工作正常。
我尝试过很多组合,但无法正常工作,但我知道我的两个数据源都运行正常。
我在此范围内设置了默认数据库。默认值为“DatasourceOne”。
<cfquery>
SELECT UserID
FROM DatasourceOne.TableOne IN (SELECT Userid FROM DatasourceTwo.TableTwo )
</cfquery
有关使用多个数据源的规则或指南是什么?
澄清
我本来应该问我如何在一个查询中使用两个数据库(而不是数据源)。我相信你的答案会有所不同。我们确实将两个数据库设置为数据源,但我自己有点困惑。
答案 0 :(得分:18)
根据您的数据库,如果第二个数据库位于同一服务器上(或定义为链接服务器)并且数据源中的用户具有权限,则通常可以引用其他数据库。
SELECT * FROM myTable
WHERE myField IN
(SELECT otherField FROM otherDatabase.dbo.tableName)
答案 1 :(得分:12)
您无法在单个CFQUERY中与两个CF(JDBC)数据源通信。你能做什么:
答案 2 :(得分:7)
ColdFusion只能在给定查询中一次与一个数据*源*通信。但是,如果需要在同一服务器上与多个数据* base *进行通信,则可以通过显式提供需要访问或连接在一起的数据库,表和列的完整路径来实现。另请注意,ColdFusion中的data * source *配置为使用的用户必须能够访问这两个数据库才能使其正常工作。