webForumDet fria alternativet

Update körs inte i SP?

4 svar · 232 visningar · startad av Brimba

BrimbaMedlem sedan dec. 19995 875 inlägg
#1

Hej!

Jag har en SP med följande:

----------------------------------------------------
@lngweeID INT,
@lngBopID INT = 0,
@retval INT OUTPUT
----------------------------------------------------

if @lngBopID = 0
BEGIN
....
SET @lngBopID= IDENT_CURRENT('minTabell')
END

----------------------------------------------------

UPDATE 
	tabellen
SET 
	ettFält = @lngBopID
WHERE 
	ettannatfält = @lngweeID

SELECT @retval = @lngBopID

----------------------------------------------------

Problemet är att SP:n utan problem returnerar lngBopID, men UPDATEN, tycks aldrig verkställas.

Vad är felet?

MharlinMedlem sedan juni 200277 inlägg
#2

du kan inte sätta ett värde till en variabel när du deklarerar den och sen när du sätter värden till variabler måste du antingen använda select eller set.

set @lngBopID = 0 'en variant
select @lngBopId = 0 'en annan variant

Jag skulle gissa på att den inte går in i updated för att den inte har fått värdet du sätter i början.

BrimbaMedlem sedan dec. 19995 875 inlägg
#3

Ledsen, det är inte deklaration av variabler, det är inparametrar.

CREATE    PROCEDURE proc_mySP
( 
@lngWeeID		INT,
@lngBopID		INT = 0,
@retval 		INT OUTPUT
) 
AS 
        SET NOCOUNT ON 
	
	IF @lngBopID = 0
	BEGIN
		INSERT INTO minTabell....
		SET @lngBopID = IDENT_CURRENT('minTabell')
	END

	UPDATE 
		minTabell
	SET 
		myField1 = @lngBopID 
	WHERE 
		myField1 = @lngWeeID

	SELECT @retval = @lngBopID
LarsGMedlem sedan dec. 200012 464 inlägg
#4

I så fall finns det ingen post där myField1 = @lngWeeID eller?

BrimbaMedlem sedan dec. 19995 875 inlägg
#5

Mycket riktigt Lasse!
Jag upptäckte själv mitt misstag igår när jag gick igenom koden istället för att anta att - den biten är rätt :)

Jag skickade in ett värde, men eftersom det är versionshistorik glömde jag att hämta den sista versionens värde :r

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