簡體   English   中英

如何在一個SQL語句中比較來自不同數據庫的兩個值

[英]how to compare two values from different databases in one SQL statements

我有一個想法,從兩個不同的數據庫調用兩個值,並在一個語句中comapre他們? 可能嗎? 我正在使用c#和MS-SQL

是。

對於MSSQL,您可以在表前添加數據庫名稱。 您通常可以使用4個名稱空間

[服務器名稱]。[數據庫名稱]。[所有者]。[table_name]

因此,如果要比較一個語句中的兩個值,則只需要通過將數據庫名稱放在表名前面來連接表。

如果數據庫位於不同的服務器上,那么您將需要創建一個鏈接服務器來運行您的SQL,以便它知道其他sql服務器。 您可以使用sp_addlinkedserver之類的內容在Management studio中或通過SQL添加鏈接服務器

您可以跨數據庫連接來比較這些值:

SELECT
   db1.Value as value1,
   db2.Value as value2
FROM
   [database1].dbo.MyTable1 as db1
   INNER JOIN
   [database2].dbo.MyTable as db2
    ON   
    /* insert join clasue */

根據您的設置,這里有一些可能性。 如果您的數據庫是不同的SQL Server安裝,那么您將首先查看sp_linkedserver 一旦您能夠使用相同的登錄查看兩個數據庫,您就可以執行以下查詢,其中db1和db2是數據庫,dbo是所有者,tab1和tab2是相應的表。

SELECT a.col1 
FROM db1.dbo.tab1 a, db2.dbo.tab2 b
WHERE a.col1 = b.col2

如果您恰好缺少創建鏈接服務器的SQL Server權限,則可以創建與每個服務器的連接,並且您的客戶端可以使用Microsoft JET庫連接到服務器,然后您可以執行異構連接客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM