---
title: "MSSQL UPDATE fråga"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/166063-mssql-update-fråga"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "MickeA.com"
published: "2007-11-02T16:23:37.000Z"
updated: "2007-11-03T11:05:01.000Z"
replies: 4
views: 532
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/166063-mssql-update-fråga"
---

# MSSQL UPDATE fråga

## #1 — MickeA.com, 2007-11-02T16:23Z

Tjena
Jag ska uppdatera 85 Poster i en SQL Server Databas.
Plockar ut de aktuella posterna såhär:

```
SELECT
b.id
FROM customers a, regsites b
WHERE a.customer_flag = 11
AND a.id = b.cId
AND b.sSajt = 'Parbet'
```

Nu ska jag uppdatera de här posterna, kan jag då köra det här?

```
UPDATE regsites SET
sSajt = 'Betsafe'
WHERE id IN (
	SELECT
	b.id
	FROM customers a, regsites b
	WHERE a.customer_flag = 11
	AND a.id = b.cId
	AND b.sSajt = 'Parbet'
)
```

Jag är helsäker på att det här \_bör\_ funka, inget annat får absolut uppdateras, förutom de här 85 posterna jag plockar ut i mitt övre exempel.

Vad tror ni?

Tack!

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

## #2 — Gein, 2007-11-02T16:35Z

Använd dig av transaktionshanteringen.
Kör 

```
BEGIN TRAN
UPDATE regsites SET
sSajt = 'Betsafe'
WHERE id IN (
	SELECT
	b.id
	FROM customers a, regsites b
	WHERE a.customer_flag = 11
	AND a.id = b.cId
	AND b.sSajt = 'Parbet'
)
```

Kolla att endast dina 85 rader uppdaterades och kör isåfall

```
COMMIT TRAN
```

Om det inte stämmer så kör du istället

```
ROLLBACK
```

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

## #3 — MickeA.com, 2007-11-03T08:55Z

Aha, så det funkar så, tack!
Nu körde jag mitt script ovan och den uppdaterade bara de 85 aktuella posterna, så allt fungerade som det skulle, men det kan vara mkt bra att använda det där framöver.

:)

En fråga till bara, kör jag allt det där i Query Browser (eller vad det heter), väljer tabell, högerklickar, *script table as* \- *UPDATE to* och sen kör de där tre?

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

## #4 — Gein, 2007-11-03T10:42Z

Ja, så kan du göra. Utnyttja att du kan exekvera vissa kommandon i taget genom att markera kommandot och trycka Ctrl-E, för du vill ju inte köra alla tre kommandon på en gång (eftersom du inte vet om du ska köra COMMIT TRAN eller ROLLBACK).

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

## #5 — MickeA.com, 2007-11-03T11:05Z

Nä just det.
Tack för hjälpen!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/166063-mssql-update-fråga
