我正在處理一個項目,其中我的要求只是將數據庫從本地服務器更新到目標服務器(所有表,視圖,函數,行和存儲過程)。比較兩個數據庫錶行並插入
現在我想比較本地數據庫表與目標數據庫表,並將新插入的行從本地數據庫插入目標表。
E.g. :我有一個數據庫dbsource
和dbDestination
,並且都包含表table1
。現在我插入新行到dbsource.table1
。
現在我想比較兩個數據庫表並將新行插入到目標表中。
請幫幫我。
我正在處理一個項目,其中我的要求只是將數據庫從本地服務器更新到目標服務器(所有表,視圖,函數,行和存儲過程)。比較兩個數據庫錶行並插入
現在我想比較本地數據庫表與目標數據庫表,並將新插入的行從本地數據庫插入目標表。
E.g. :我有一個數據庫dbsource
和dbDestination
,並且都包含表table1
。現在我插入新行到dbsource.table1
。
現在我想比較兩個數據庫表並將新行插入到目標表中。
請幫幫我。
假設兩個Table1表都有一個主鍵(唯一)列,您可以通過以下方式實現該功能。我列出了PK列ID:
INSERT INTO DBDESTINATION.<SCHEMA_NAME>.TABLE1
(SELECT T1.* FROM DBSOURCE.<SCHEMA_NAME>.TABLE1 AS T1
LEFT OUTER JOIN DBDESTINATION.<SCHEMA_NAME>.TABLE1 AS T2 ON T1.ID=T2.ID
WHERE T2.ID IS NULL)
希望有幫助。
爲什麼重新發明輪子?有大量的商業應用,在那裏,已經爲你做這個:
但是爲什麼要爲自己可以做的事情付錢。 –
因爲自己做這個花費你的時間,所以也花錢..... –
如果要比較多對錶格,可能會同意。但是,再次,我寧願吱吱響每一滴可用的功能,而不是使用其他第三方工具。我自己使用Red Gates的SQLPrompt,這是一個驚人的SSMS插件,因爲SQL Server 2005缺少代碼格式化和完成功能。我毫不懷疑,當他們比較兩張桌時,紅門也會採用相同的方式。 –
會是什麼SCHEMA_NAME,當EXEC上面的查詢變得「附近有語法錯誤‘<’。 「 – Anil
schema_name是您的表要記錄的模式的名稱。默認情況下,它是dbo.so DBSOURCE.DBO.TABLE1。如果你將DBO替換爲schema_name(沒有尖括號),你可能會好起來 –