webForumDet fria alternativet

Felmess med SP

Databaser & SQLur Databashanterare & SQL

4 svar · 219 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1

Jag har missat något här va?

ALTER PROCEDURE cal_updCatFromValues
	( 
		@shid bigint	
	)

AS

	DECLARE @myvar int
	SELECT @myvar=count(*) FROM pricecategory where shid=@shid	

	exec('UPDATE calendar SET price='+ @myvar +' WHERE shid=@shid AND price >'+ @myvar)
Medlem sedan nov. 20017 144 inlägg
#2
ALTER PROCEDURE cal_updCatFromValues
	( 
		@shid bigint	
	)

AS

	DECLARE @myvar int
	SELECT @myvar=count(*) FROM pricecategory where shid=@shid	

	exec('UPDATE calendar SET price='+ @myvar +' WHERE shid='+@shid+' AND price >'+ @myvar)
Medlem sedan dec. 200012 464 inlägg
#3

Det behövs bara en fråga

UPDATE calendar SET price=
  (select count(*) 
     from pricecategory
    where shid = @shid)
WHERE shid=@shid 
 AND price > (select count(*) 
     from pricecategory
    where shid = @shid)

i vilket fall som helst så skall du inte använda dynamisk SQL.

AND price >  @myvar

ter sig som ett konstigt villkor

Medlem sedan nov. 20017 144 inlägg
#4

Det behövs bara en fråga

Jag gjorde så först men sedan så tänkte jag att det skulle vara snabbare att fylla en variabel med värdet än att köra samma sql två ggr.

ter sig som ett konstigt villkor

Varför är det konstigt?

Medlem sedan nov. 20017 144 inlägg
#5

Kan tillägga att "price" inte är pris utan en priskategori.

128 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)