首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL :使用C#从两个不同的服务器连接

SQL :使用C#从两个不同的服务器连接
EN

Stack Overflow用户
提问于 2017-03-11 22:21:25
回答 1查看 276关注 0票数 1

问题是:使用ASP.NET平台,我在两个不同的服务器(SQL2016和SQL2005)上有两个SQL表,并且我想在后面的C#代码上返回一个JSON对象。

服务器A上的表1 (SQL 2005)包含可结帐的所有平板电脑的所有信息(大部分数据)

在服务器B (SQL 2016)上的表2中,我只需要条形码和告诉我平板电脑是否已检出的布尔值字段。

更复杂的是,我使用的是服务器端分页,主要是在SQL2005端。因此,在某一时刻,这将是Server B数据拉取的一部分:

SELECT * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY ID_EXAMPLE) AS NUMBER, ..... ) AS TBL WHERE NUMBER BETWEEN ((@PageNumber - 1) * @RowspPage + 1) AND (@PageNumber * @RowspPage) ORDER BY ID_EXAMPLE

两个表之间的链接是条形码。

因此:

Table 1 (Server A) | BARCODE | LAH | DI | DOO | DAH | |---------|-----|----|-----|-----| | 0000001 | foo | 1 | A | No | | 000001A | bar | 1 | A | Yes | | 0000002 | mit | 2 | S | Yes | | 0000003 | zva | 1 | A | Yes | . . .

Table 2 (Server B) | BARCODE | CheckOut | Beep | BeepBeep | |---------|----------|------|----------| | 0000001 | True | 11 | 3/2/2017 | | 0000002 | False | 12 | 3/1/2017 | | 0000003 | True | 14 | 3/7/2017 | . . .

我想要返回的是来自表1(服务器A)的条形码,LAH和DOO,以及来自表2(服务器B)的CheckOut,在条形码上有一个连接,其中CheckOut等于'True‘。

对于这个问题,我有两种想法:一种是在其中一台服务器上创建一个临时表,添加CheckOut列,然后以这种方式形成JSON对象。这是一个又快又脏的解决方案。过了一段时间,我觉得这变得很浪费。

第二个想法是在C#中使用LIST类。因为我返回一个LIST对象,所以肯定有一种方法可以将CheckOut列添加到LIST中。

社区对此有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-13 23:29:46

这就是答案:

在服务器A上,创建一个到服务器B的链接服务器对象。然后,只创建一条SELECT语句。以其最一般的形式:

SELECT Table1.BARCODE, Table1.LAH, Table1.DAH, r.CheckOut FROM Table1 LEFT OUTER JOIN [Server B].database.dbo.Table2 AS r ON Table1.BARCODE = r.BARCODE WHERE r.CheckOut = 'True'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42736330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档