webForumDet fria alternativet

sp med select efter insert

Webbutveckling

3 svar · 182 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

har problem med denna, inserten körs men inte selecten därefter.
selecten verkar inte fatta att ett datum har lagts in av inserten.
selecten efter else fungerar och båda selectsatserna är lika.

CREATE PROCEDURE dbo.sp_productionlog_setup_raport
@Objectid int, 
@Active int, 
@Shiftday int, 
@Current_date datetime

AS
declare @Setupid int

if (
Select Count(*) 
From Productionlog_setup_date 
Where Objectid = @Objectid And Regdate = @Current_date) = 0
	begin
		Select @Setupid = Setupid From Productionlog_setup Where Active = 1

		Insert Into Productionlog_setup_date (Objectid, Setupid, Regdate) Values
		(@Objectid, @Setupid, @Current_date)

		Select s.Setupid, s.Shift, s.Totaltime, s.Cycletime, s.Active, s.Diff, s.Fromdate, s.Regdate, 
		sh.Shiftday, sh.Starttime_n, sh.Stoptime_n, sh.Starttime_f, sh.Stoptime_f, sh.Starttime_e, sh.Stoptime_e, sh.Regdate
		From Productionlog_setup s
		Left Join Productionlog_shift sh On s.Setupid = sh.Setupid
		Left Join Productionlog_setup_date d On s.Setupid = d.Setupid
		Where s.Objectid = @Objectid And 
		coalesce(@Active, s.Active) = s.Active And 
		coalesce(@Shiftday, sh.Shiftday) = sh.Shiftday And
		d.Regdate = @Current_date
		Order By sh.Shiftday
	end
else
	Select s.Setupid, s.Shift, s.Totaltime, s.Cycletime, s.Active, s.Diff, s.Fromdate, s.Regdate, 
	sh.Shiftday, sh.Starttime_n, sh.Stoptime_n, sh.Starttime_f, sh.Stoptime_f, sh.Starttime_e, sh.Stoptime_e, sh.Regdate
	From Productionlog_setup s
	Left Join Productionlog_shift sh On s.Setupid = sh.Setupid
	Left Join Productionlog_setup_date d On s.Setupid = d.Setupid
	Where s.Objectid = @Objectid And 
	coalesce(@Active, s.Active) = s.Active And 
	coalesce(@Shiftday, sh.Shiftday) = sh.Shiftday And
	d.Regdate = @Current_date
	Order By sh.Shiftday
Medlem sedan juni 200032 967 inlägg
#2

Vad menar du med fungerar inte? I applikationen eller i QA eller i både och?

Du bör ha SET NOCOUNT ON i procedurer som gör mer än en sak, eftersom varje statement returnerar ett resultat.

Mvh

Medlem sedan juni 20003 076 inlägg
#3

Tja, det behövdes tydligen inte mer än så, satte dit SET NOCOUNT ON och nu funkar det! :)

Medlem sedan juni 200032 967 inlägg
#4

Vad bra. Jag kände nästan på mig det. :)

Mvh

270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
135 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)