[SQL server] update procedure

Pagina: 1
Acties:

  • mrSunshine
  • Registratie: Juni 2001
  • Laatst online: 15-09 22:21
Ik ben op zoek naar een procedure of iets dergelijks waarmee ik de rows in een tabel kan updaten met data uit een andere tabel met als overeenkomst een keyveld.

Het moet er zoiets uit komen te zien als:

SELECT veld1,veld2 FROM tabel1
for each record in result
UPDATE tabel2 SET veld3='result(veld2)' WHERE veld4='result(veld1)'
next

Dit moet toch kunnen als stored procedure, maar hoe??

Verwijderd

met een cursor: (ik ga even uit van het feit dat veld1 en veld2 integers zijn
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DECLARE @iVeld1 int,
      @iVeld2 int

DECLARE csrUpdate CURSOR LOCAL FAST_FORWARD READ_ONLY FOR
    SELECT veld1,veld2 FROM tabel1 

-- Open query
OPEN csrUpdate

-- Fetch first row
FETCH NEXT FROM csrUpdate INTO @iVeld1,@Veld2

-- Dive into loop 
WHILE @@FETCH_STATUS=0
BEGIN
      UPDATE tabel2 SET Veld3=@iVeld2
          WHERE veld4=@iVeld1
       FETCH NEXT FROM csrUpdate INTO @iVeld1,@Veld2
END
CLOSE csrUpdate
DEALLOCATE Update

De layout zal wel wat sukken, dat komt door de tabs/spaces.