【发布时间】:2013-12-10 05:22:06
【问题描述】:
更新我收到 DataBaseA.dbo.templates 的无效对象名称错误
我希望从同一服务器(本地)上的不同数据库中内连接两个表。
但我似乎无法让它工作。另外我不明白我应该如何处理我的连接字符串,因为我目前正在将当前连接设置为我的数据库的连接字符串。但在这个例子中,我试图在同一个查询中连接到两个不同的数据库。
这是我目前的 SQL 代码:
"SELECT a.template.*, b.c_template.* FROM DatabaseA.dbo.templates a INNER JOIN DatabaseB.dbo.c_template b ON a.id = b.template_id"
这是我的连接字符串:
<add name="Unit" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\DatabaseA.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="Content" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\DatabaseB.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
【问题讨论】:
-
您需要数据库 B 成为数据库 A 中的链接服务器(假设您将 SQL 命令发送到数据库 A)。
-
我建议将此连接放在存储过程中。我没有尝试像您那样从应用程序发出联接,但我们一直在存储过程中执行此操作,没有任何问题。
-
我如何链接数据库,Tobberoth?
-
首先,确保您对两个数据库都有权限。如果您对两个数据库都有权限,那么 1 个连接字符串就足以执行此查询。可选:最好在存储过程中使用此查询。
-
Connectionstring 指向任何一个数据库就足够了。提供的登录应该适用于两个数据库。你试过了吗?
标签: c# sql database inner-join