Avatar billede sortsnak.dk Nybegynder
29. januar 2008 - 12:47 Der er 4 kommentarer og
1 løsning

Stored Procedures og modificering af variabler

Jeg har aldrig rigtig arbejdet med Microsoft SQL Stored Procedures, så jeg ved ikke om det kan lade sig gøre, men det jeg gerne vil er, at kunne opdele en streng i stil med Right(text, 5) i VB eller Substr/substring i Javascript.

Jeg har fået sjusset mig frem til følgende kode, men som I kan se er både Right og year(now)-funktionerne næppe valide.

Håber I vil og kan hjælpe mig... :)



DECLARE @latestInvNumber;
SET    @latestInvNumber = (SELECT TOP 1 id FROM invoices WHERE id<>'' ORDER BY recordId desc);

IF @latestInvNumber IS NOT NULL
  BEGIN
    SET @latestNumber = right(@latestInvNumber, instrrev(latestInvNumber, "-")-1)
    nextInvNumber  = year(now)&"-"&(@latestInvNumber+1)
  END IF
Avatar billede powerpunk Nybegynder
29. januar 2008 - 12:52 #1
Left([string], x) => Substring([String], 0, x)

year(now) => YEAR(GETDATE())
Avatar billede powerpunk Nybegynder
29. januar 2008 - 12:54 #2
Men RIGHT([string],x) eksisterer faktisk også...
Avatar billede sortsnak.dk Nybegynder
29. januar 2008 - 14:05 #3
Tak for hjælpen! :)
Avatar billede sortsnak.dk Nybegynder
29. januar 2008 - 14:10 #4
Kan nogen så forklare mig hvorfor denne kode gør at min stored procedure ikke bliver gennemført? Efter denne kodedel er der en INSERT som fungerer så længe nedenstående kode ikke er med.

--------------------------------------------
IF LEN(@id)=0 BEGIN
    DECLARE @latestInvNumber VARCHAR(10)
    SET @latestInvNumber = (SELECT TOP 1 id FROM invoices WHERE id<>'' ORDER BY id)
    IF @latestInvNumber IS NOT NULL SET @id = YEAR(GETDATE())+"-"+(SUBSTRING(@latestInvNumber, 4, 6)+1)
END
--------------------------------------------

@latestInvNumber returnerer 2008-1000 og @id skal ændres til 2008-1001.

Hvad kan der være galt?
Avatar billede sortsnak.dk Nybegynder
29. januar 2008 - 15:02 #5
nvm... opretter et spørgsmål som giver point så :P
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester