Skulle behöva er hjälp med följande kod. Har jag tänkt rätt?
Tabeller:
lagerplatsBrochure
lagerplats
BEGIN
IF EXISTS(SELECT dbo.lagerplatsBrochure.fk_lpID FROM dbo.lagerplatsBrochure WHERE dbo.lagerplatsBrochure.fk_lpID = @lpid)
BEGIN
IF (@@ROWCOUNT = 2) -- OM Det kom tillbaka 2 rader vid Selecten ovan
BEGIN
DELETE FROM dbo.lagerplatsBrochure WHERE dbo.lagerplatsBrochure.fk_lpID = @lpid AND dbo.lagerplatsBrochure.fk_brSLank = @brid
UPDATE dbo.lagerplats SET dbo.lagerplats.sammansatt = '0' WHERE dbo.lagerplats.LPExpID = @lpid
END
ELSE
BEGIN
IF(@@ROWCOUNT > 2) -- OM Det kom tillbaka fler än 2 rader vid Selecten ovan
BEGIN
DELETE FROM dbo.lagerplatsBrochure WHERE dbo.lagerplatsBrochure.fk_lpID = @lpid AND dbo.lagerplatsBrochure.fk_brSLank = @brid
END
ELSE -- 1 rad tillbaka
BEGIN
IF(@@ROWCOUNT = 1)
BEGIN
DELETE FROM dbo.lagerplatsBrochure WHERE dbo.lagerplatsBrochure.fk_lpID = @lpid AND dbo.lagerplatsBrochure.fk_brSLank = @brid
END
END
END
END
END
Det jag vill är följande:
1 - Kolla ifall tabell lagerplatsBrochure har minst en lagerplats med ID = @lpid lagrad.
2 - Ifall den har det, och har 2 sådana ID (mha @@ROWCOUNT = 2). Ta bort lagerplatsen med @brid samt uppdatera tabell lagerplats.sammansatt = 0 där lagerplats.LPExpID = @lpid
3 - Annars, om det kom tillbaka fler än 2 rader (@@ROWCOUNT > 2). Ta enbart bort en rad i lagerplatsBrochure.
4 - Eller, om det kom tillbaka 1 rad (@@ROWCOUNT = 1). Ta enbart bort en rad i lagerplatsBrochure.
Stämmer det som jag tänkt skriva ovan? har jag gjort en tankevurpa ngnstans?
SQL Server 2005
Tackar på förhand för inputs!