Avatar billede Lasse Novice
11. januar 2008 - 23:39 Der er 3 kommentarer og
1 løsning

Hjaelp til update saetning 2

Jeg har en tabel t:

Id    SameAsId    Code
------------------------
1    1            1
2    1            2
3    2            3
4    2            4
5    3            5
6    4            7

id er et sekventielt nummer der automatisk bliver genereret(identity). 1 og 2 faar samme sameasid, 3 og 4 faar samme sameasid osv.

Jeg indsaetter nu disse raekker med een insert:

Code
-----
6
8

hvordan goer jeg (helst i insert trigger) saaledes at de to nye raekker faar sameasid tildelt saaledes:

Id    SameAsId    Code
------------------------
7    6            6
8    8            8
Avatar billede arne_v Ekspert
12. januar 2008 - 02:32 #1
Prøv og lav en stored procedure med:

INSERT INTO t (code) VALUES(@v1);
SELECT @id1 = SCOPE_IDENTITY();
INSERT INTO t (code) VALUES(@v2);
SELECT @id2 = SCOPE_IDENTITY();
SELECT @newasid = SELECT MAX(sameasid)+1 FROM t;
UPDATE t SET sameasid=@newasid WHERE id=@id1 OR id=@id2;
Avatar billede arne_v Ekspert
12. januar 2008 - 05:54 #2
Testet (og kun lidt ændret):

CREATE PROCEDURE usp_pairinsert
@v1 INTEGER,
@v2 INTEGER
AS
DECLARE @id1 INTEGER,@id2 INTEGER,@newsameasid INTEGER
INSERT INTO noget (code) VALUES(@v1)
SELECT @id1 = SCOPE_IDENTITY()
INSERT INTO noget (code) VALUES(@v2)
SELECT @id2 = SCOPE_IDENTITY()
SELECT @newsameasid = ISNULL(MAX(sameasid),0)+1 FROM noget
UPDATE noget SET sameasid=@newsameasid WHERE id=@id1 OR id=@id2
GO
Avatar billede Lasse Novice
13. januar 2008 - 18:51 #3
Ok, jeg tror jeg har lavet lort i spg. Lad mig acceptere og stille et nyt. Svar => point.
Avatar billede arne_v Ekspert
13. januar 2008 - 19:03 #4
svar
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