使用存储过程从另一个表更新表

Tim*_*vra 2 sql-server-2008

我在SQL Server 2008 R2中工作.我有一张桌子,它将成为我SSRS报告的主要活动表.我需要使用另一个表中的信息更新表,该表由查询我的ERP数据库并收集特定记录的定期作业创建.我需要使用另一个表中的五个字段更新主表,而不会干扰现有数据.

主表有14个字段,ERP表有6个.共同点是:Job#JobName Reference Pages Due Date Customer

如果作业#存在于主表中,我想转到下一条记录.我打算做一个可以一次查看记录的存储过程.我在Excel中完成了这个,但在SQL中没有.另外从最佳实践的角度来看,我最好将ERP数据库的查询和此更新放在单个存储过程中,还是创建一个新的并创建一个连续运行它们的作业?

Bil*_*egg 5

SQL是基于设置的,因此您应该尽力避免任何逐行逻辑.没有你的架构,我只是在猜测......

UPDATE main
set Field1 = other.Field1,
    Field2 = other.Field2,
    Field3 = other.Field3
from MainTable main
INNER JOIN ERP other
ON main.[Job#] = other.[Job#]
and main.JobName = other.JobName
and main.Reference = other.Reference
and main.Pages = other.Pages
and main.[Due Date] = other.[Due Date]
and main.Customer = other.Customer
Run Code Online (Sandbox Code Playgroud)