【发布时间】:2016-09-17 06:50:29
【问题描述】:
我需要从另一个数据库的表中获取一个值;如果这些表在同一个数据库中,那将非常容易,但由于它们不是,所以事情变得复杂了。我试过这个:
SELECT TOP 8 prosql05.sa.cpsdata.M.membername,
P.*
FROM prosql05.sa.bidata.priceexceptionhistorycsr P
JOIN prosql05.sa.cpsdata.members M
ON P.memberno = M.memberno
WHERE invoicedate BETWEEN '2016-09-04' AND '2016-09-10'
ORDER BY invoicedate
...但是得到错误消息(在 LINQPad 中),
错误 208:无效的对象名称“sa.BIData.PriceExceptionHistoryCSR”。
我很确定这是可能的(因为它们都在 PROSQL05 上),但是如何?
在 LINQPad 中选择的连接是“PROSQL05.sa.BIData”
更新
我已经改变了我的尝试:
select top 8 M.MemberName, P.*
from PriceExceptionHistoryCSR P, PROSQL05.sa.CPSData M
where InvoiceDate between '2016-09-04' and '2016-09-10'
and M.MemberNo = P.MemberNo
order by invoicedate
...现在得到“错误 208:无效的对象名称 'PROSQL05.sa.CPSData'。”
这对我来说更有意义,但我仍然需要知道如何从 BIData 架构/数据库访问其他数据库(架构、IOW CPSData)中的表。
更新 2
根据 LINQPad 的属性对话框,服务器 = PROSQL05,用户名 = sa,数据库 = BIData。
那么,这些知识如何影响 SQL 的结构?
【问题讨论】:
-
服务器名称:
PROSQL05,数据库名称:sa,架构名称:BIData& 表名:PriceExceptionHistoryCSR。如果以上信息正确,则不会出现该错误 -
你尝试了什么?
-
@swe:显示的查询。
-
@Prdp:我假设我为 Connection (PROSQL05.sa.BIData) 选择的内容表明这些是这样的,对吗?
-
几乎呼应了 Prdp 所说的 - 你确定你的数据库名称不是
cpsdata和bidata吗?因为目前您将这两个视为 模式名称 都使用名为sa的数据库 - 这似乎不太可能。
标签: sql-server linqpad