在SQL Server 2008中的表中更新

时间:2014-08-14 20:13:25

标签: sql sql-server sql-server-2008

我需要将一个表从一个数据库更新到另一个数据库上的另一个表。这需要每天运行一次。两个表都是相同的结构。

一个数据库称为pvc_rds,另一个称为kiosk。该表格为REC_Materials。有一个名为sid的列是唯一的。这两者都存在于同一个SQL Server 2008上。

我是新手,所以任何帮助都将不胜感激。感谢

2 个答案:

答案 0 :(得分:0)

使用(至少)由三部分组成的identifier

  

对象的完整名称由四个标识符组成:服务器名称,数据库名称,架构名称和对象名称。它们以下列格式显示:

     

服务器名。[DATABASE_NAME] [SCHEMA_NAME] .object_name

在您的情况下,这只会转换为(假设您的表的dbo架构):

UPDATE pvc_rds.dbo.REC_Materials
FROM pvc_rds.dbo.REC_Materials
INNER JOIN kiosk.dbo.REC_Materials
ON pvc_rds.dbo.REC_Materials.sid = kiosk.dbo.REC_Materials.sid

以便同步两个数据库中存在的现有记录。您可以对此进行扩展,以删除不再存在的记录并添加任何新记录。您可以将该流程保存到job,并使其scheduling每天运行一次。

答案 1 :(得分:0)

简单的答案是创建一个预定作业,其中包含一个查询源服务器(源数据库)并插入目标数据库的步骤。但是,您必须使用对象的完整名称,如下所述:http://technet.microsoft.com/en-us/library/ms187879(v=sql.105).aspx

更复杂的答案取决于您的总体目标。源数据库,事务数据库和目标数据库是报告数据库吗?在这种情况下,您的目标是使用事务或合并复制来复制数据吗?