2012-03-08 15 views
0

有許多類似的問題,但我還沒有找到我正在尋找什麼。從另一個數據庫複製一張表不會讓我丟棄或插入

我想複製並完全更新一個表從一個數據庫到另一個。然後,每一天,SP都會丟棄,並使用主數據庫數據插入本地數據庫。或者以其他方式更新本地副本。

考慮創建一個存儲過程,該存儲過程執行從主數據庫到本地數據庫的「插入」。當我這樣做時,我得到一個表,但表已經存在的錯誤。

我是否需要刪除整個表格然後執行插入操作?如果是這樣,你可以發佈一個示例SQL嗎?

我的問題: 1)當我嘗試刪除該表,然後執行INSERT INTO,我得到的是,該表中不存在情況下的錯誤。它不會讓我放棄它。 2)當我插入到沒有下降,它說表已經存在。 3)安排日常進口的最佳方式是什麼?

USE Local_DB 
CREATE PROCEDURE TransferProductTable; 
DROP TABLE Local_DB.dbo.tbProduct 
SELECT * 
INTO Local_DB.dbo.tbProduct 
FROM Master_DB.dbo.tbProduct 
GO; 

當我運行它,我得到Local_DB.dbo.tbProduct已經存在的錯誤或當我添加刪除表,我得到的,因爲它不存在,我不能放棄它。

我還在這裏閱讀了SQL Management Studio有一個導入數據任務。創建一個運行該任務的計劃任務會更好嗎,還是與創建運行存儲過程的計劃任務一樣?

這是在Windows中運行帶有MS SQL 2008

+0

SELECT INTO和INSERT INTO是兩個完全不同的東西。 – 2012-03-08 18:00:31

回答

1

你問了很多不同的問題。但是,您發佈的代碼可以通過使用截斷而非DROP來修改爲工作:

USE Local_DB 
CREATE PROCEDURE TransferProductTable; 
    Truncate Table Local_DB.dbo.tbProduct 
    Insert INTO Local_DB.dbo.tbProduct 
    select * FROM Master_DB.dbo.tbProduct 
GO; 
+0

太好了,謝謝!您認爲運行存儲過程的計劃任務是完成此日常導入的好方法嗎? – User970008 2012-03-08 17:59:57

+0

我會創建一個SQL Server代理作業來自動執行並跟蹤此過程的每日執行。在這裏閱讀有關它:http://msdn.microsoft.com/en-us/library/ms187061.aspx – Coltech 2012-03-08 18:03:47

+0

再次感謝,我感謝。 – User970008 2012-03-08 18:10:42

相關問題