Code Bye

SQLServer 一条SQL语句 涉及两个数据库 C#怎么样实现

SQL Server的查询分析器中,可以很简单地实现相似以下SQL语句:
SELECT * FROM db1.table as t1 INNER JOIN db2.table as t2 ON t1.id = t2.id
INSERT INTO db1.table SELECT * FROM db2.table

等等……
但是在C#程序开发中,我们通常在ConnectionString中只能描述一个数据库的存在,例如:
Data Source=127.0.0.1;Initial Catalog=db1;User ID=sa;pwd=sa
这样只能实现在一个数据库下的操作,那么假如像前面的SQL语句那样,一条语句牵涉到两个或多个数据库的话,C#能否实现?假如可以实现,该怎么样做呢?
解决方案

5

20

只要你登录数据库使用的用户具有同时访问这两个数据的权限就Ok的。

10

或你把要执行的这条语句放到存储过程里面
通过链接服务器连接B数据库

5

引用 6 楼 yiko628 的回复:

3楼说的应该是正确的,是本人想得太复杂了,其实直接用就可以了。
可是有谁知道下面这个是什么错嘛?
Transaction (Process ID 107) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
就算是看字面的意思,本人也不能确定问题是出在哪里哎。

事务死锁的样子。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明SQLServer 一条SQL语句 涉及两个数据库 C#怎么样实现