自动将数据从一个表复制到另一个表

时间:2014-11-10 12:37:29

标签: sql sql-server sql-agent-job

我需要设置一些东西来将数据从一个数据库中的表复制到另一个数据库中的相同表。我听说过在SQL中设置自动作业,但我不知道从哪里开始。

有人可以使用Management Studio解释如何在SQL Server 2012中执行此操作吗?

4 个答案:

答案 0 :(得分:2)

从这里开始: http://msdn.microsoft.com/en-us/library/ms189237(v=sql.110).aspx

这将使您开始使用"什么是SQL Server代理"。

至于将数据从一个表复制到另一个表,如果要按计划运行它,那么您将创建一个SQL Agent作业,该作业将按照该计划执行SQL脚本/存储过程(这将更有意义一次你仔细阅读了相关文章。)

就填充表格而言,您可以使用以下内容:

SELECT ST.COL1, ST.COL2, ... ,ST.COLN
INTO [DESTINATION TABLE] 
FROM [SOURCE TABLE] ST

或者如果它们是相同的表格:

TRUNCATE TABLE [DESTINATION TABLE]
SELECT *
INTO [DESTINATION TABLE] 
FROM [SOURCE TABLE]

这些是一般方法。如果您只想从源表中插入尚未包含在目标表中的数据,则需要更多逻辑来确定哪些记录符合该条件。无论如何,这应该让你开始。

答案 1 :(得分:1)

您可以使用select * into命令将表中的数据从一个数据库复制到具有相同结构的其他数据库,如下所示。

选择*

进入DATABASE_NAME1.NewTable

来自DATABASE_NAME2.OldTable

答案 2 :(得分:0)

您是否考虑过使用replication?虽然您当然可以使用作业推出自己的解决方案(有时这可能是合适的),但复制专门用于实现(半)实时数据复制。

答案 3 :(得分:-1)

如果truncate / insert不适合你,你也可以使用MERGE指令,详见SO https://stackoverflow.com/a/18873941/78522