SP Kolla och insert..

Databaser & SQL

2 svar · 309 visningar · startad av freddyk

Medlem sedan okt. 2006103 inlägg
Trådstart#1

Tjena SQLare,

Behöver lite hjälp. Ska köra en INSERT i en tabell. Inga konstigheter där men jag vill även kunna se efter ifall en broschyr redan finns upplagd på lagerplatsen som jag gör en insert på. Om så är fallet ska en annan INSERT köras som skriver in att en lagerplats är delad.

Nedan kod finns i en SP i SQL 2005.

BEGIN
	INSERT INTO dbo.lagerplatsBrochure(fk_lpID,fk_brSLank,plockplats) VALUES(@lpid,@brid,@plocka)
END

Ovanstående behöver byggas på så att man förutom inserten även kollar ifall fk_lpID redan finns upplagd i tabellen dbo.lagerplatsBrochure och i så fall köra en INSERT i en annan tabell: dbo.lagerplats (dbo.lagerplats.delad = 1). Görs detta i en ny begin i samma SP eller en ny SP? Någon som har förslag?

Tacksam och Tack på förhand! :)

Medlem sedan dec. 200012 464 inlägg
#2
   if not exists(select * from dbo.lagerplatsBrochure where fk_lpID = @lpid)
      insert INTO dbo.lagerplatsBrochure(fk_lpID,fk_brSLank,plockplats) VALUES(@lpid,@brid,@plocka)
   else
-- din andra insert
Medlem sedan okt. 2006103 inlägg
#3

LarsG skrev:

   if not exists(select * from dbo.lagerplatsBrochure where fk_lpID = @lpid)
      insert INTO dbo.lagerplatsBrochure(fk_lpID,fk_brSLank,plockplats) VALUES(@lpid,@brid,@plocka)
   else
-- din andra insert

Smaskigt! Tack LarsG.

Kom fram till det med, ngt annorlunda skrivet bara:

BEGIN	
	IF EXISTS(SELECT dbo.lagerplatsBrochure.fk_lpID FROM dbo.lagerplatsBrochure WHERE dbo.lagerplatsBrochure.fk_lpID = @lpid)
		BEGIN
			INSERT INTO dbo.lagerplatsBrochure(fk_lpID,fk_brSLank,plockplats) VALUES(@lpid,@brid,@plocka)
			UPDATE dbo.lagerplats SET dbo.lagerplats.sammansatt = "1" WHERE dbo.lagerplats.LPExpID = @lpid
		END
	ELSE
		BEGIN
			INSERT INTO dbo.lagerplatsBrochure(fk_lpID,fk_brSLank,plockplats) VALUES(@lpid,@brid,@plocka)
		END
END

Tackar för det snabba svaret! :birp

250 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
116 ms — ändringar (db)