Обновление таблицы продуктов на основе префикса sku - PullRequest
2 голосов
/ 05 марта 2010

У меня есть таблица продуктов с идентификатором изготовителя, равным -1 для всех продуктов.

У меня есть таблица производителя с префиксом SKU.

Так, если префикс sku MFG: ABC

Тогда таблица продуктов будет иметь такие продукты, как ABC123, ABC3434.

Поэтому мне нужен запрос для обновления таблицы продуктов, чтобы установить идентификатор производителя на основе skuPrefix в таблице производителя.

это возможно?

Ответы [ 2 ]

2 голосов
/ 05 марта 2010
UPDATE tblProducts
SET P.manufacturerId = M.manufacturerId
FROM tblProducts P
JOIN tblManufacturers M ON LEFT(P.Sku, 3) = M.SkuPrefix
-- above, replace 3 with whatever the prefix length is
--WHERE  possibly some where condition

Вышесказанное должно сработать. Несколько соображений, однако:

  • в случае очень большой таблицы продуктов, может быть предпочтительнее выполнять эти обновления небольшими [er] партиями, т. Е. Вводя условие «где-то» (в зависимости от модели восстановления это может помочь избежать чрезмерного скопления журнала SQL )
  • длина префикса должна быть определена, конечно, я использовал 3 для целей иллюстрации, один может понадобиться 5 или 8?
  • если длина префикса переменная, можно использовать
    ... (ON CHARINDEX(P.Sku, M.SkuPrefix) = 1)
    как условие соединения.
0 голосов
/ 05 марта 2010
UPDATE tblProducts 
SET manufacturerId = M.manufacturerId 
FROM tblProducts P 
JOIN tblManufacturers M ON M.Sku + '%' LIKE P.sku

Должен сделать это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...