【发布时间】:2014-11-10 12:37:28
【问题描述】:
我需要设置一些东西来将数据从一个数据库中的表复制到另一个数据库中的相同表。我听说过在 SQL 中设置自动作业,但我不知道从哪里开始。
有人可以解释如何使用 Management Studio 在 SQL Server 2012 中执行此操作吗?
【问题讨论】:
-
我不知道如何自动执行,但您可以使用导出/导入向导轻松完成。
标签: sql sql-server sql-agent-job
我需要设置一些东西来将数据从一个数据库中的表复制到另一个数据库中的相同表。我听说过在 SQL 中设置自动作业,但我不知道从哪里开始。
有人可以解释如何使用 Management Studio 在 SQL Server 2012 中执行此操作吗?
【问题讨论】:
标签: sql sql-server sql-agent-job
从这里开始: http://msdn.microsoft.com/en-us/library/ms189237(v=sql.110).aspx
这将使您开始了解“什么是 SQL Server 代理”。
至于将数据从一个表复制到另一个表,如果您想按计划运行它,那么您将创建一个 SQL 代理作业,该作业将按该计划执行您的 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]
这些是一般方法。如果您只想从源表中插入尚未在目标表中的数据,则需要更多逻辑来确定哪些记录符合该条件。无论如何,这应该可以帮助您入门。
【讨论】:
您可以使用 select * 将数据从一个数据库复制到另一个具有相同结构的数据库中,如下所示。
选择 *
进入 DATABASE_NAME1.NewTable
来自 DATABASE_NAME2.OldTable
【讨论】:
您是否考虑过使用replication?虽然您当然可以使用作业推出自己的解决方案(有时这可能是合适的)复制是专门为实现(半)实时数据复制而设计的。
【讨论】:
如果截断/插入对您不起作用,您还可以使用 MERGE 指令,详细说明如下:https://stackoverflow.com/a/18873941/78522
【讨论】: