Объединение характеристик по наименованию
Объединить характеристики в Вашем случае можно вот таким SQL-запросом. Выполнить его можно например в SQL Query Analizer
Код
DECLARE @PID int, @PNAME varchar(500);
DECLARE cP CURSOR LOCAL FOR
select P_NAME from
(
select 1 as cnt, RTRIM(LTRIM(P_NAME)) as P_NAME from TBL_PROPS
) t
group by P_NAME
having sum(cnt) > 1;
OPEN cP;
FETCH NEXT FROM cP INTO @PNAME;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
SET @PID = (SELECT TOP 1 P_ID FROM TBL_PROPS WHERE LTRIM(RTRIM(P_NAME)) = @PNAME);
UPDATE TBL_GOODS_PROPS
SET GP_P_ID = @PID
WHERE GP_P_ID IN (SELECT P_ID FROM TBL_PROPS WHERE LTRIM(RTRIM(P_NAME)) = @PNAME AND P_ID <> @PID);
DELETE FROM TBL_PROPS
WHERE LTRIM(RTRIM(P_NAME)) = @PNAME AND P_ID <> @PID;
FETCH NEXT FROM cP INTO @PNAME;
END;
CLOSE cP;
DEALLOCATE cP;
Не забудьте на всякий случай сделать резервную копию базы данных!
|