USE [SSCC_Thise] GO /****** Object: StoredProcedure [dbo].[IncSSCC] Script Date: 08/29/2011 09:30:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET NOCOUNT ON GO
-- ============================================= -- Author: SSCCcounter -- Create date: -- Description: -- ============================================= ALTER PROCEDURE [dbo].[IncSSCC] (@SSCC_ID int = 0, @SSCCcnt int = 0) AS DECLARE @CntVal varchar(5);
BEGIN TRY BEGIN TRANSACTION SELECT @CntVal = CounterVal FROM SSCCCntTabel WHERE SSCC_ID = 1; SET @CntVal += 1;
UPDATE SSCCCntTabel SET CounterVal = '00008' WHERE SSCC_ID = 1; COMMIT TRANSACTION END TRY BEGIN CATCH END CATCH RETURN 0
Nogle af linierne har umiddelbart ingen anvendelse, men det beror på debugging. Problemet er at der ikke sker nogen ændring i min tabel. Ser det ikke fornuft nok ud?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Findes der overhovedet nogle rækker i SSCCCntTabel som opfylder SSCC_ID = 1 ?
Prøv lige at fyre denne af: SELECT CounterVal FROM SSCCCntTabel WHERE SSCC_ID = 1;
Derudover så er data typen af @CntVal en varchar(5), men du lægger 1 til via en += (syntaxen af += blev introduceret i SQL Server 2008). Så er du sikker på at værdien af @CntVal rent faktisk er en integer? For ellers vil du få en conversion fejl, og dermed lande i din catch block.
Til sidst så tæller du @CntVal op med 1, men du bruger jo ikke den variable i din update statement, så værdien vil jo altid være 8.
Du erklærer også din procedure til at bruge 2 parametre at du efterfølgende ikke bruger til noget.
Som jeg læser det er eneste formål med den procedure at opdater et felt i tabellen med en fast værdi ud fra en fast condition.
Variablerne er overflødige.
Create Procedure dbo.Do_something() as update dbo.tablenavn Set feltnavn = '00008' where feltnavn2 = 1 end
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.