Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Switch to a CASE statement with an ELSE clause. It's more concise anyway.</p> <pre><code>GO /****** Object: StoredProcedure [dbo].[REPAIR_USER_STAT_POINTS] Script Date: 05/30/2013 03:57:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[REPAIR_USER_STAT_POINTS] @strUserID varchar(21) AS DECLARE @Level int, @Point int, @Class int,@NewPoint int, @Strong int, @Sta int, @Dex int, @Intel int, @Cha int, @Total int SELECT @Level = Level, @Class = Class, @Point = Points, @Strong = Strong, @Sta = Sta, @Dex = Dex, @Intel = Intel, @Cha = Cha FROM USERDATA WHERE strUserId = @strUserID SET @Total = SUM(@Strong + @Sta + @Dex + @Intel + @Cha + @Point) SET @NewPoint = CASE WHEN @Level = 61 AND @Total &lt; 482 THEN 10 WHEN @Level = 62 AND @Total &lt; 487 THEN 15 WHEN @Level = 63 AND @Total &lt; 492 THEN 20 WHEN @Level = 64 AND @Total &lt; 497 THEN 25 WHEN @Level = 65 AND @Total &lt; 502 THEN 30 WHEN @Level = 66 AND @Total &lt; 507 THEN 35 WHEN @Level = 67 AND @Total &lt; 512 THEN 40 WHEN @Level = 68 AND @Total &lt; 517 THEN 45 WHEN @Level = 69 AND @Total &lt; 522 THEN 50 WHEN @Level = 70 AND @Total &lt; 527 THEN 55 WHEN @Level = 71 AND @Total &lt; 532 THEN 60 WHEN @Level = 72 AND @Total &lt; 537 THEN 65 WHEN @Level = 73 AND @Total &lt; 542 THEN 70 WHEN @Level = 74 AND @Total &lt; 547 THEN 75 WHEN @Level = 75 AND @Total &lt; 552 THEN 80 WHEN @Level = 76 AND @Total &lt; 557 THEN 85 WHEN @Level = 77 AND @Total &lt; 562 THEN 90 WHEN @Level = 78 AND @Total &lt; 567 THEN 95 WHEN @Level = 79 AND @Total &lt; 572 THEN 100 WHEN @Level = 80 AND @Total &lt; 577 THEN 105 WHEN @Level = 81 AND @Total &lt; 582 THEN 110 WHEN @Level = 82 AND @Total &lt; 587 THEN 115 WHEN @Level = 83 AND @Total &lt; 592 THEN 120 ELSE @Point END IF @Point &lt;&gt; @NewPoint BEGIN IF @Class = 201 OR @Class = 205 OR @Class = 206 OR @Class = 101 OR @Class = 105 OR @Class = 106 BEGIN UPDATE USERDATA Set Strong = '247',Dex = '60',Sta = '65',Intel = '50',Cha = '50',Points = @NewPoint WHERE strUserId = @strUserId END ELSE IF @Class = 202 OR @Class = 207 OR @Class = 208 OR @Class = 102 OR @Class = 107 OR @Class = 108 BEGIN UPDATE USERDATA Set Strong = '60',Dex = '252',Sta = '60',Intel = '50',Cha = '50',Points = @NewPoint WHERE strUserId = @strUserId END ELSE IF @Class = 203 OR @Class = 209 OR @Class = 210 OR @Class = 103 OR @Class = 109 OR @Class = 110 BEGIN UPDATE USERDATA Set Strong = '50',Dex = '70',Sta = '50',Intel = '70',Cha = '232',Points = @NewPoint WHERE strUserId = @strUserId END ELSE IF @Class = 204 OR @Class = 211 OR @Class = 212 OR @Class = 104 OR @Class = 111 OR @Class = 112 BEGIN UPDATE USERDATA Set Strong = '65',Dex = '60',Sta = '65',Intel = '232',Cha = '50',Points = @NewPoint WHERE strUserId = @strUserId END END </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload