2013-07-19 60 views
2

我需要將兩個表數據與一個數據庫進行比較。使用一些列表格對錶中的數據進行匹配。比較sqlserver中同一個數據庫中兩個表的數據

將此額外行數據存儲到名爲「relationaldata」的另一個表中。 當我搜索時,發現了一些solutin。

但它不工作對我來說 http://weblogs.sqlteam.com/jeffs/archive/2004/11/10/2737.aspx

任何一個可以幫助如何做到這一點。 如何使用redgate(Tool)將兩個表數據與一個數據庫進行比較?

+0

給出一些示例表和查詢,你曾經工作過的東西... – kevinm

+0

1)http://weblogs.sqlteam.com/jeffs/archive/2 004/11/10/2737.aspx 2)SELECT COL1,COL2,COL3 FROM (SELECT * FROM TABLEA UNION ALL SELECT * FROM tableB的)數據 GROUP BY COL1,COL2,COL3 HAVING COUNT(*)! = 2 – user123

+0

當我試過這顯示兩個數據行,但我不需要,我只想比較數據保存這個額外的行到新表select * from tableA minus select * from tableB – user123

回答

3

紅色SQL數據比較讓您可以將同一個數據庫中的兩個表映射到一起,前提是這些列是兼容的數據類型。您只需將相同的數據庫放入源和目標中,然後轉到「對象映射」選項卡,取消映射這兩個表,然後將它們映射到一起。

數據比較用於使用UNION ALL,但是它填滿了tempdb,這是如果表具有較高的行數會發生什麼情況。它現在使用數據緩存完成本地硬盤上的所有「連接」。

+0

非常感謝您的答覆你有任何教程或視頻,爲此如何做?你是問,因爲我沒有任何想法在這個工具之前,我才知道這 – user123

+0

http://documentation.red-gate.com/display/SDC104/Mapping+objects – Wonko

1

我認爲你可以使用除了子句中的SQL Server

INSERT INTO tableC 
(
    Col1 
, col2 
, col3 
) 

select Col1,col2,col3from tableA 
Except 
select Col1,col2,col3 from tableB 

請到更多信息

http://blog.sqlauthority.com/2008/08/07/sql-server-except-clause-in-sql-server-is-similar-to-minus-clause-in-oracle/

希望這有助於

+0

雅謝謝你,我已經試過這個但我的數據是相同的,但列是不同的像infoID,EmpID像這樣,而我正在執行查詢它顯示錯誤。 – user123

+0

您能否分享您嘗試過的確切查詢,以便我們能夠爲您提供幫助 –

+0

雖然列不同如何比較? – user123