询问者
多数据库查询即数据筛选问题!急。。。。

问题
-
1.A系统生成一个关联的SQL查询语句,关联的表来自不同的库,对于A系统来说这些表是属于同一个库!(这个SQL语句,是自定义配置的)
2.B系统拿到A系统的SQL语句,怎么去执行?
我想了一些办法,请大家帮忙出出注意,是不是有更好的解决办法:
1. B系统建立多张表,将不同数据库的表数据放到一个库里,然后可以直接使用A系统的SQL语句。
2.在数据库中使用链接库,然后直接运行A系统的SQL语句,这个不能用!
3.将不同数据库的表的数据,都放到一个DataSet中,然后进行筛选,但是DataSet中好像不能直接使用SQL语句
4.考虑过使用动态Linq,如果使用动态LINQ 就需要将SQL语句转换成LinQ,因为不知道SQL会有多复杂,所以这个代价可能比较大!
小飞鱼Гìsん
全部回复
-
Hi:
如果A系统和B系统都是在同一个SQL Server
可以直接 用 [IP位址].[数据库名].[数据表名] 来查询
例如:A系统为192.168.1.101,数据库名为A,数据表名为tb_A
B系统为192.168.1.101,数据库名为B,数据表名为tb_B
所以若以B系统要查询A系统的话,例:Select * from [192.168.1.101].dbo.[A].[tb_A]就可以查到A的数据了
以上不知道是不是您要的?
Shadowと愉快なコード達
Please correct me if my concept is wrong -
- 分別在DB Server A建立Linked Server連接至DB Server B,在DB Server B建立Linked Server連接至DB Server A。
- 使用Four-part name來存取資料表,例如下列程式碼範例:
select * from [DB_Server_A].[Northwind].[dbo].[Orders] inner join [DB_Server_B].[Northwind].[dbo].[Order Details]
以上說明若有錯誤請指教,謝謝。
http://www.dotblogs.com.tw/terrychuang/ -
-
谢谢你的回复,因为数据库之间是不允许使用Linked Server来互相连接的,因为设计到安全或者保密,DB Server A和DB Server B之间不能互相暴露所有的表,因为这2个数据库是属于两个独立的系统,只能说DB Server B 所需要的数据在DB Server A的某个表中,这个是协商好的!
小飞鱼Гìsん -
谢谢你的回复,因为数据库之间是不允许使用Linked Server来互相连接的,因为设计到安全或者保密,DB Server A和DB Server B之间不能互相暴露所有的表,因为这2个数据库是属于两个独立的系统,只能说DB Server B 所需要的数据在DB Server A的某个表中,这个是协商好的!
小飞鱼Гìsん其實建立Linked Server時可以指定要對應到遠端哪個使用者,以下圖為例你可以在DB Server A建立Linked Server並對應到DB Server B的某一個使用者,然後再限制DB Server B的使用者可以存取的Table就可以達到DB Server A只能存取特定DB Server B的某些TABLE的需求。
PS:如果你的資訊安全政策不允許建立Linked Server,那可能得考慮使用其他資料同步的機制,例如Replication。
以上說明若有錯誤請指教,謝謝。
http://www.dotblogs.com.tw/terrychuang/