---
title: "sp_ Uppdatera & hämta om träff."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/167021-sp-uppdatera-hämta-om-träff"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Bjuris"
published: "2007-12-06T14:22:54.000Z"
updated: "2007-12-07T08:55:56.000Z"
replies: 9
views: 452
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/167021-sp-uppdatera-hämta-om-träff"
---

# sp_ Uppdatera & hämta om träff.

## #1 — Bjuris, 2007-12-06T14:22Z

jag har en tabell AWBStock
\-SystemID
\-Prefix
\-FirstNr
\-LastNr
\-NrLeft

i min sp så vill jag skicka in systemID och prefix.

och det är här det kniper...

Jag vill nämligen kolla först om prefix finns, och om det finns så vill jag kolla att nrLeft är större än 0.
Om detta stämmer så vill jag hämta ut FirstNr samt uppdatera detta fält med 1 och även dra ifrån 1 från NrLeft.
Kan jag göra detta i en och samma sp?

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

## #2 — @nders, 2007-12-06T14:24Z

```
update awbstock set firstnr = firstnr + 1, nrleft = nrleft - 1 
where prefix = 4711 and nrleft > 0
```

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

## #3 — Bjuris, 2007-12-06T14:38Z

nja, ser väl ganska ok ut.

problemet är att jag inte får ut firstNR från frågan...
mao typ merga ihop dessa på något sätt:

```
CREATE PROCEDURE sp_GetNextAWB
	@SystemID	varchar(10),
	@Prefix		char(3)
AS
	SELECT FirstNr
	
	FROM AWBStock
	WHERE SystemID = @SystemID AND Prefix = @Prefix	

GO
```

 

och 

```
CREATE PROCEDURE sp_GetNextAWB
	@SystemID	varchar(10),
	@Prefix		char(3)
AS
update awbstock set firstnr = firstnr + 1, nrleft = nrleft - 1 
WHERE SystemID = @SystemID AND Prefix = @Prefix	

GO
```

 

ett annat problem är att firstNR är en varchar(7) detta då numret iblan kan vara 0000000 --\> med int så blir det ju 0. 
Detta påverkade också firstnr + 1

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

## #4 — @nders, 2007-12-06T14:44Z

Kan ju vara bra att ha med all information som behövs för att lösa problemet redan från början.

Varför är firstnr inte tal? Padding med nollor känns som något man ska fixa i presentationen om man nu ska ha det.

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

## #5 — Bjuris, 2007-12-06T14:56Z

problemet med att firstnr är varchar är just en gammal lösning så jag vet inte riktigt varför det ser ut som det ser ut... problemet är att tabellen används i en annan lösning så jag kan inte ändra detta.

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

## #6 — Bjuris, 2007-12-07T08:16Z

Skippade den gamla tabellen - kopierar över data tille en ny tabell istället.
Men hur mergar jag de två ovanstående frågorna så att den returnerar ett värde?

jag måste ju köra min select fråga innan updatefrågan...

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

## #7 — @nders, 2007-12-07T08:31Z

Varför måste du köra en select först?

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

## #8 — Bjuris, 2007-12-07T08:46Z

iom att jag uppdaterar värdet som jag skall hämta ut...

Det vore ju lite knasigt om jag uppdaterar värdet, sedan hämtar det uppdaterade värdet och i koden editera värdet till det föregående värde igen...

lite kaka på kaka.

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

## #9 — @nders, 2007-12-07T08:51Z

ok - jag tror jag missuppfattade lite vad du ville göra.

typ:

```
create procedure ...
set nocount on
declare @foo int
select @foo = firstnr from awbstock ...

--kör din update

select @foo as firstnr
```

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

## #10 — Bjuris, 2007-12-07T08:55Z

sweet.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/167021-sp-uppdatera-hämta-om-träff
