请帮助创建UPDATE语句

时间:2016-01-08 07:45:20

标签: sql sql-server

对所有SQL事情都很陌生,所以希望你能忍受我。

我有一种情况,我在一个临时表中有数据等待,该表有大约11列和100行。目标表包含大约27列和100行。

我正在尝试使用T-SQL脚本创建服务器代理作业,以便从登台表更新目标表,但仅限于所需的列。

Staging Table
Col1 - Col11

Destination Table
Col1 - Col27

我需要保留目标表中的“剩余”列,因为它们保存的是未由登台表提供的数据。

我还应该指出,登台表中的记录数量会随着时间的推移而持续增长,并且代理作业的计划将每小时查看登台表以进行更新。

这是我目前的脚本,它已成功完成,但目标表中的每一行都由登台表第一行中的数据填充。

  

e.g。分期表Col1 = David和Col2 = Smith。

执行下面的查询后,目标表中的所有行都包含每列记录的第1列和第2列中的David和Smith。

UPDATE DestTable
SET DestTable.Col1 = StagingTable.Col1,
    DestTable.Col2 = StagingTable.Col2,
FROM StagingTable

我曾考虑使用WHERE语句来匹配ID数据,但是对于在临时表中等待的任何新记录,目标表不会“识别”ID。

最后,登台表将为目标表提供新记录,对现有记录的更新以及要删除的记录。

提前致谢,并为“论文”道歉。

1 个答案:

答案 0 :(得分:2)

self.assertInEmail语句与UPDATEINNER JOIN之间的StagingTable相结合,可以为您提供所需的行为:

DestTable