Here are some more variations on this..

For the Update, you could use:
Code:

UPDATE a
SET a.storage_co = c.storage_co
FROM dbo.shp a
INNER JOIN dbo.gen b
ON a.[file_id] = b.[file_id]
INNER JOIN KDyer.hold_storage c
ON c.loan_num = b.loan_num



or:
Code:

UPDATE
SHP
SET shp.storage_co=
(SELECT KDyer.hold_storage.storage_co
FROM KDyer.hold_storage INNER JOIN
dbo.gen ON KDyer.hold_storage.loan_num = dbo.gen.loan_num)
FROM dbo.shp INNER JOIN
dbo.gen ON dbo.shp.file_id = dbo.gen.file_id



One variation for Inserts
Code:

INSERT translog
(
file_id,
employ_id,
field,
oldval,
newval,
changdate
)
SELECT a.file_id,'ADP','Storage Company', a.storage_co, c.storage_co,getdate()
FROM dbo.shp a INNER JOIN
dbo.gen b ON a.file_id = b.file_id INNER JOIN
hold_storage c ON c.loan_num = b.loan_num



Doing three inserts at once:
Code:

INSERT translog
(
file_id,
employ_id,
field,
oldval,
newval,
changdate
)
SELECT a.file_id,'ADP','Storage Company', a.storage_co, c.storage_co,getdate()
FROM dbo.shp a INNER JOIN
dbo.gen b ON a.file_id = b.file_id INNER JOIN
hold_storage c ON c.loan_num = b.loan_num
UNION SELECT a.file_id,'ADP','File Location', a.file_location, c.file_location,getdate()
FROM dbo.shp a INNER JOIN
dbo.gen b ON a.file_id = b.file_id INNER JOIN
hold_storage c ON c.loan_num = b.loan_num
UNION SELECT a.file_id,'ADP','Package Track No', a.pkg_trac, c.pkg_trac,getdate()
FROM dbo.shp a INNER JOIN
dbo.gen b ON a.file_id = b.file_id INNER JOIN
hold_storage c ON c.loan_num = b.loan_num



HTH,

Kent
_________________________
Utilize these resources:
UDFs (Full List)
KiXtart FAQ & How to's