попробуйте что-то вроде этого:
DECLARE @MediaResurce table (sku varchar(3), CountOf int)
DECLARE @MediaResurce_Pics table (sku varchar(3), ImageName varchar(10))
INSERT @MediaResurce VALUES ('abc',0)
INSERT @MediaResurce VALUES ('mno',0)
INSERT @MediaResurce VALUES ('xyz',0)
INSERT @MediaResurce_Pics VALUES ('abc','a.jpg')
INSERT @MediaResurce_Pics VALUES ('abc','a.gif')
INSERT @MediaResurce_Pics VALUES ('xyz','a.gif')
UPDATE a
SET CountOf=dt.CountOf
FROM @MediaResurce a
INNER JOIN (SELECT
aa.Sku,ISNULL(COUNT(bb.sku),0) AS CountOf
FROM @MediaResurce aa
LEFT OUTER JOIN @MediaResurce_Pics bb ON aa.sku=bb.sku
GROUP BY aa.Sku
) dt ON a.sku=dt.sku
SELECT * FROM @MediaResurce
ВЫВОД:
sku CountOf
---- -----------
abc 2
mno 0
xyz 1
(3 row(s) affected)
Примечание:
Если вам нужна только эквивалентная таблица @MediaResurce для подсчета таблицы @MediaResurce_Pics, я настоятельно рекомендую заменить эквивалентную таблицу @MediaResurce на представление. Он будет автоматически синхронизирован без использования триггера. Если вам действительно нужна эквивалентная таблица @MediaResurce для другого столбца, все равно рассмотрите представление для столбца Count. Вы можете материализовать столбец, если вам нужна дополнительная скорость во время выбора.