Diskuze: Kopírování dat z tabulky do tabulky plus duplikace řádku (MSSQL)
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Dotaz mi přijde takový zmatený. Vzhledem k tomu, že ID záznamu by mělo
být unikátní, neměla by nastat situace, kdy by už existovalo v druhé
tabulce (pokud se plní pouze kopírováním dat z té první)...
Chtělo by to trošku rozvést, ukázat nějakou strukturu těch tabulek...
Třeba takto:
DECLARE @CilovaHodnota VARCHAR(255), @MenenaHodnota VARCHAR(255), @PuvodniMaxId INT, @NoveMaxId INT
SELECT @CilovaHodnota = 'S cim se ma porovnavat', @MenenaHodnota = 'Na jakou jinou hodnotu se ma nastavit'
SELECT @PuvodniMaxId = MAX(Id) FROM A
INSERT INTO A
(
Sloupec
,DalsiSloupec1
,DalsiSloupec2
)
SELECT Sloupec
,DalsiSloupec1
,DalsiSloupec2
FROM A
WHERE Sloupec = @CilovaHodnota
SELECT @NoveMaxId = MAX(Id) FROM A
UPDATE A
SET Sloupec = @MenenaHodnota
WHERE Id BETWEEN @PuvodniMaxId + 1 AND @NoveMaxId
DELETE FROM B WHERE DuplikovaneIdTabulkyA BETWEEN @PuvodniMaxId + 1 AND @NoveMaxId
INSERT INTO B
(
DuplikovaneIdTabulkyA
)
SELECT Id
FROM A
WHERE Id BETWEEN @PuvodniMaxId + 1 AND @NoveMaxId
Omlouvám se, když to teď po sobě čtu, tak vidím, jak je to strašně
zmateně napsané.
Každopádně správné řešení pro svůj případ už mám. Každopádně
děkuji za odpovědi.
Zobrazeno 4 zpráv z 4.