2016-04-15 162 views
-1

=>我們有兩個相同的SQL數據庫DB1DB2具有相同的模式和數據。
例如我在DB1DB2語言表包含相同的數據,如圖SQL數據庫腳本遷移

語言表的DB1

enter image description here

語言表DB2的

enter image description here

個兩個表看起來架構和數據

現在一樣,我已經在DB1

enter image description here

DB2

enter image description here

更新現有的記錄插入一條記錄

從這裏,語言表DB1DB2沒有更多相同的現在

,我已經生成插入腳本DB1的語言表

enter image description here

現在,我想在DB2

運行此腳本

如果我在DB2

中運行此腳本

enter image description here

直到現在一切正常。
但我不希望以這種方式記錄DB2的語言表,因爲我的要求不同 現在真正的問題開始了。

我想這個腳本應該注意語言表的更新記錄DB2。我的意思是說它應該檢查DB2中語言表的更新記錄,即更新後的記錄應該保持不變。
它運行DB2的腳本語言表後表示
enter image description here

我們應該怎麼做,或者我們應該在我們的腳本做什麼樣的變化,將採取這些更改以及

回答

0
/* 
Given this setup 
drop table languages 
CREATE TABLE LANGUAGES 
(TITLE CHAR(5),DESCRIPTION CHAR(20), ID INT) 

INSERT INTO LANGUAGES 
(TITLE ,DESCRIPTION, ID) 
VALUES 
('UK','uNITED kINGDOM',1), 
('US','uNITED STATES',2), 
('N','nORWAY',3), 
('fi','Finland',4) 

This update statement works 
*/ 

update languages 
set title = 'nb-NV' where id = 3 
+0

這就是絕對正確的,但我想自動跟蹤此。我不知道在DB2表中更新了哪些行,假定DB2作爲客戶端數據庫。我不知道在哪些數據記錄中添加了他們的內容。我需要自動保留這些更改 – Sam

0

如果你手動合併數據庫,你應該看看這個工具:

  • Open DBDiff - 免費
  • Red Gate - 不是免費的,價格昂貴;)
  • 如果用戶的Microsoft Visual 2015年,你可以使用內置的數據進行比較的功能