从另一个数据库复制一个表不会让我丢弃或插入

时间:2012-03-08 17:51:37

标签: sql database sql-server-2008

有很多类似的问题,但我找不到我想要的东西。

我想将一个表从一个数据库复制并完全更新到另一个数据库。然后,每天,SP将丢弃,并使用master数据库数据插入本地数据库。或者其他一些更新本地副本的方法。

考虑创建一个从master数据库“插入”到本地数据库的存储过程。当我这样做时,我得到一个错误,表已经存在。

我是否需要删除整个表格然后插入?如果是这样,你可以发布一个示例SQL吗?

我的问题: 1)当我尝试删除表然后插入时,我得到表在上下文中不存在的错误。它不会让我放弃它。 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已经存在的错误,或者当我添加drop table时,我得到了我不能删除它,因为它不存在。

我还在这里读到SQL Management Studio有一个导入数据任务。创建运行该任务的计划任务或者创建运行存储过程的计划任务是否相同?

这是在带有MS SQL 2008的Windows机器上运行。

1 个答案:

答案 0 :(得分:1)

你问了很多不同的问题。但是你发布的代码可以通过使用Truncate而不是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;