Avatar billede taiko Nybegynder
26. oktober 2003 - 13:41 Der er 2 kommentarer

stored procedure kode

Jeg skal have lavet en stored procedure med følgende logik:

hvis færre end 6000 records (rækker) så
  lav INSERT
ellers
  hent index
  lav UPDATE for index
  increment index

Altså hvis der 6000 rækker så skal den lave INSERT og hvis der er flere end 6000 så skal den lave UPDATE fra nr.1 igen (altså overskrive gammel data)

Nogen som kan hjælpe til med at lave den kode??

Det jeg har lavet indtil nu... men som ikke rigtig virker:

CREATE PROCEDURE dbo.FiFo

as


set nocount on
declare @Taeller int
  select count(Name) as @Taeller From dbo.Table1

  If @Taeller < 6000
    Insert into Table1 (Name, Value, Timestamp) Values ('Opc_Name', 'Opc_Value', 'Opc_Timestamp')
  Else
    Update Table1 Set Name = 'Opc_Name',Value='Opc_Value',Timestamp='Opc_Timestamp'

Ja som i kan se er jeg jo lidt n00b til det :-)
Avatar billede helmet Nybegynder
27. oktober 2003 - 15:41 #1
Du bliver nok nødt til at lave en tabel hvor du gemmer en nøgle til den sidste rækker du har opdateret, ellers er det jo umuligt at lave en update, da man ikke kan vide hvilken række man er kommet til.

Det nemmeste er nok at lave et id i din tabel1, så man starter med 1 i id osv. Når der så er 6000 rækker gemmer du 1 i den nye tabel og opdaterer række 1 i tabel1, næste gang henter du så tallet 1 og opdateret det til 2 og opdatere række 2 i tabel1 osv.
Avatar billede taiko Nybegynder
28. oktober 2003 - 12:58 #2
har løst problemet ved at bruge delete i stedet.
Søger i TOP xxxx og laver delete på resten.
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