05. september 2007 - 09:24Der er
3 kommentarer og 1 løsning
Incorrect syntax near the keyword 'CASE'
Får denne fejl næsten uanset hvad jeg har prøvet "Incorrect syntax near the keyword 'CASE'"
Any clue...any one?
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[pOpskrivRykkerfrist] @dagsdato datetime, @nyrykkerfrist datetime, @blanketnummer int, @guid uniqueidentifier, @rykkerfrist int AS BEGIN DECLARE @rykkernummer int SET @rykkernummer = (SELECT COUNT(BlanketnummerOriginal) FROM tBlanketRykker WHERE BlanketnummerOriginal=@blanketnummer)
IF(rykkernummer>0) BEGIN UPDATE tRykkerData CASE @rykkernummer WHEN 1 THEN SET tRykkerData.Rykker1Dato=@dagsdato, tRykkerData,Udløbsdato=@nyrykkerfrist WHEN 2 THEN SET tRykkerData.Rykker2Dato=@dagsdato, tRykkerData,Udløbsdato=@nyrykkerfrist END FROM tRykkerData INNER JOIN tDHS ON tRykkerData.RykkerIndex = tDHS.RykkerIndex WHERE tDHS.Guid = @guid END END
Jeg tror ikke du kan bruge en Case som du gør det i din Update. I dit tilfælde skal du nok heller bruge if:
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[pOpskrivRykkerfrist] @dagsdato datetime, @nyrykkerfrist datetime, @blanketnummer int, @guid uniqueidentifier, @rykkerfrist int AS BEGIN DECLARE @rykkernummer int SET @rykkernummer = (SELECT COUNT(BlanketnummerOriginal) FROM tBlanketRykker WHERE BlanketnummerOriginal=@blanketnummer)
IF(rykkernummer=1) BEGIN UPDATE tRykkerData SET tRykkerData.Rykker1Dato=@dagsdato , tRykkerData,Udløbsdato=@nyrykkerfrist FROM tRykkerData INNER JOIN tDHS ON tRykkerData.RykkerIndex = tDHS.RykkerIndex WHERE tDHS.Guid = @guid END IF(rykkernummer=2) BEGIN UPDATE tRykkerData SET tRykkerData.Rykker2Dato=@dagsdato , tRykkerData,Udløbsdato=@nyrykkerfrist FROM tRykkerData INNER JOIN tDHS ON tRykkerData.RykkerIndex = tDHS.RykkerIndex WHERE tDHS.Guid = @guid END END
UPDATE tRykkerData SET tRykkerData.Rykker1Dato = case @Rykkernummer when 1 then @Dagsdato else tRykkerData.rykker1dato end, tRykkerData.Rykker2Dato = case @Rykkernummer when 2 then @Dagsdato else tRykkerData.Rykker2Dato end, Udløbsdato=@nyrykkerfrist FROM tRykkerData INNER JOIN tDHS ON tRykkerData.RykkerIndex = tDHS.RykkerIndex WHERE tDHS.Guid = @guid
Hvilken løsning bruger du? Min eller Lorentsnv? Husk at lukke spørgsmålet, når du har fået løsningen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.