Avatar billede royal12 Nybegynder
01. november 2005 - 19:58 Der er 6 kommentarer

tjeck om et id finden inden insert

Hej

Jeg har en rimelig stor database med over en million rækker. Hvis jeg tjekker med om en række findes inden jeg sætter den ind via vb.net tager det pænt langtid.
Så jeg tænkte om det måske var muligt at gøre dette direkte via en sql sætning eller i stored proceder.

mvh
Royal12
Avatar billede arne_v Ekspert
01. november 2005 - 20:00 #1
drop det - det er alligevel ikke sikkert i flerbruger sammenhæng

sæt et unikt index på feltet !

så får du fejl ved insert af duplikat
Avatar billede royal12 Nybegynder
01. november 2005 - 20:17 #2
Hmm...det kan jeg desværre ikke da det felt jeg tjekker på er et varchar felt
Avatar billede arne_v Ekspert
01. november 2005 - 20:20 #3
og ?

du kan da sagtens lave unikke index på varchar felter
Avatar billede arne_v Ekspert
01. november 2005 - 20:20 #4
(du kan ikke på text)
Avatar billede moller2567 Nybegynder
02. december 2005 - 23:06 #5
Hvad med at lave det som en trigger

CREATE TRIGGER trg_test ON [dbo].[tabel]
INSTEAD OF INSERT
AS
DECLARE @felt1 INT, @felt2 VARCHAR(50)
SELECT @felt1 = inserted.felt1 FROM inserted
IF NOT EXISTS (SELECT * FROM eksemplar WHERE felt2 = @felt2)
INSERT INTO tabel
    (felt1,
    felt2)
    SELECT 
        ins.felt1,
    ins.felt2
    FROM inserted ins
Avatar billede arne_v Ekspert
31. december 2005 - 15:13 #6
Tid at få afsluttet her ?

og et svar fra mig
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