---
title: "delete och uppdatera"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/57716-delete-och-uppdatera"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Dino"
published: "2002-11-01T10:13:02.000Z"
updated: "2002-11-04T09:06:42.000Z"
replies: 8
views: 290
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/57716-delete-och-uppdatera"
---

# delete och uppdatera

## #1 — Dino, 2002-11-01T10:13Z

Om det ser ut så här i databasen:

**no**(tal)
1
2
3
4
5
6
7

Kan jag då genom en sql fråga ta bort tex nummer 3 och sen få 4 att bli 3,  5 att bli 4 osv

Permalänk: https://www.webforum.nu/p/57716

## #2 — LarsG, 2002-11-01T13:25Z

Nej, det kräver två frågor.

```
delete from t where no = 3
update t set no = no - 1 where no > 3
```

Permalänk: https://www.webforum.nu/p/842368

## #3 — Dino, 2002-11-01T13:30Z

Tack. :)

Permalänk: https://www.webforum.nu/p/842370

## #4 — Dino, 2002-11-01T15:03Z

Fortsättning...
Om vi säger att request.form("deleteRow") innehåller 1,4,5,8 så skall koden nedan ta bort rad ett och sen uppdatera raderna efter och sen göra samma med rad 4,5,8. Det funkar om raderna är efter varandra tex 4,5 men när det är mellanrum mellan radtalen tex, 4,7 så tar den bara bort den första raden. Den loopar igenom alla för jag kunde skriva ut alla "bla" med response.write och den när jag skriver ut sqlsatserna så verkar allt oxå stämma.

```
for each bla in request.form("deleteRow")
   SQL10 = "DELETE FROM order_line WHERE line_no = ("& bla &")"
   set rs10 = objConn10.Execute(SQL10)
   SQL10 = "UPDATE order_line SET line_no = line_no - 1 WHERE line_no > (("& bla &") - 1)"
   set rs10 = objConn10.Execute(SQL10)
next
```

SQL-satserna

```
18
DELETE FROM order_line WHERE line_no = (18)
UPDATE order_line SET line_no = line_no - 1 WHERE line_no > ((18) - 1)
25
DELETE FROM order_line WHERE line_no = (25)
UPDATE order_line SET line_no = line_no - 1 WHERE line_no > ((25) - 1)
28
DELETE FROM order_line WHERE line_no = (28)
UPDATE order_line SET line_no = line_no - 1 WHERE line_no > ((28) - 1)
```

Permalänk: https://www.webforum.nu/p/842439

## #5 — LarsG, 2002-11-01T15:28Z

Det där är något helt annat ju.

```
q = "delete from order_line where line_no in (" & request.form("deleteRow") & ")"
objConn10.execute q,,128
rows = split(request.form("deleteRow"),",")
for i = ubound(rows)  to 0 step -1
    Q = "UPDATE order_line SET line_no = line_no - " & i + 1 & _
    " WHERE line_no > "& rows(i)
    objConn10.Execute Q,,128
next
```

Det här förutsätter att värdena i deleteRow är sorterade i stigande ordning.

Permalänk: https://www.webforum.nu/p/842460

## #6 — Dino, 2002-11-01T15:40Z

Borttagningen funkar utmärkt. Tack. Men om jag hade 6 rader 1,2,3,4,5,6 så tar jag bort 1,3,5 men den uppdaterar inte raderna så att det blir rad 1,2,3. 
Har du någon lösning på det så skulle det vara perfekt. Men nu skall jag hem så jag får fortsätta på Måndag. Tack för hjälpen i alla fall. :)

Permalänk: https://www.webforum.nu/p/842470

## #7 — LarsG, 2002-11-01T16:05Z

```
q = "delete from order_line where line_no in (" & request.form("deleteRow") & ")"
objConn10.execute q,,128
rows = split(request.form("deleteRow"),",")
for i = ubound(rows)  to 0 step -1
    Q = "UPDATE order_line SET line_no = line_no - 1 " & _
    " WHERE line_no > "& rows(i)
    objConn10.Execute Q,,128
next
```

Permalänk: https://www.webforum.nu/p/842482

## #8 — Dino, 2002-11-01T17:10Z

Tack, skall testa den det första jag gör på Måndag. :)

Permalänk: https://www.webforum.nu/p/842519

## #9 — Dino, 2002-11-04T09:06Z

Funkade galant.

Permalänk: https://www.webforum.nu/p/844065

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/57716-delete-och-uppdatera
