BrimbaMedlem sedan dec. 19995 875 inlägg 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 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 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 I så fall finns det ingen post där myField1 = @lngWeeID eller?
BrimbaMedlem sedan dec. 19995 875 inlägg 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