---
title: "if-sats i stored procedure?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/184460-if-sats-i-stored-procedure"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Sanji"
published: "2010-08-26T12:47:04.000Z"
updated: "2010-08-26T13:56:56.000Z"
replies: 9
views: 663
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/184460-if-sats-i-stored-procedure"
---

# if-sats i stored procedure?

## #1 — Sanji, 2010-08-26T12:47Z

Hej! Jag har en stored procedure som ser ut så här:

```
ALTER PROCEDURE newinquiry
	@companyID uniqueidentifier,
	@responsibleuserID uniqueidentifier,
	@printdate datetime,
	@answerdate datetime
	AS
	BEGIN
	
	declare @notice int
	set @notice = 1
	

	declare @number int	
	SELECT @number = (SELECT MAX(number) FROM inquirydata WHERE companyID = @companyID) + 1
	if(@number = NULL)
	
	SET @number = 1
	
	declare @inquiryID uniqueidentifier
	SELECT @inquiryID = newid()
	
	

	insert into inquirydata(ID,companyID,number,printdate,answerdate)Values(@inquiryID,@companyID,@number,@printdate,@answerdate)

	END
	RETURN
```

jag försöker att kolla om det finns ett nummer i databasen, och om det finns det så ska det nya numret vara: nuvarande högsta +1. om det inte finns ett nummer så ska numret bli 1.

när jag kör den här så får jag felmeddelande om att tabellen number inte kan vara "NULL", detta då det inte finns några nummer i tabellen från början. If-satsen jag skrivit (ingen aning om hur den ser ut när man gör stored procedures) ska göra så att number får värdet 1 om det inte redan finns ett nummer, men det fungerar inte för mig just nu. någon som kan hjälpa?

Mvh Sanji

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

## #2 — newseed, 2010-08-26T12:54Z

Så som du skrivit frågan behövs väl inte IF-satsen? Du säger max + 1 vilket ju blir 1 om max är null?

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

## #3 — Sanji, 2010-08-26T13:07Z

ja det trodde jag också, men det blir inte så av någon anledning...

eller vänta lite, jag ska testa en sak

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

## #4 — Sanji, 2010-08-26T13:09Z

det var som jag trodde, var tvungen att dubbelkolla när du skrev att det borde bli 1 om det är null först, men @number får fortfarande värdet null om det inte redan finns ett nummer i databasen :(

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

## #5 — newseed, 2010-08-26T13:18Z

Ah, just ja. Det är nog fel databasmotor jag tänker på. Detta borde dock fungera:

	IF @number IS NULL
		SET @number = 1

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

## #6 — silo, 2010-08-26T13:27Z

Borde funka så här också så behöver du inte använda en if-sats

```
SELECT @Number = ISNULL(MAX(number), 1)
FROM inquirydata 
WHERE (companyID = @companyID)
```

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

## #7 — Sanji, 2010-08-26T13:46Z

> **[silo skrev:](https://www.webforum.nu/p/1514910)**
>
> Borde funka så här också så behöver du inte använda en if-sats
>
>
> ```
> SELECT @Number = ISNULL(MAX(number), 1)
> FROM inquirydata 
> WHERE (companyID = @companyID)
> ```

Detta får ett nummer att läggas till som 1 då det inte redan finns ett nummer i databasen, men den fortsätter sedan att lägga till 1 igen, även då det finns ett nummer... vad kan det bero på? 

Mvh Sanji

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

## #8 — Sanji, 2010-08-26T13:48Z

hehe, tänkte lite fel där ^^ jag måste ju fortfarande lägga till 1

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

## #9 — Sanji, 2010-08-26T13:53Z

så där, nu har jag en fungerande SP ^^ Tack till newseed och silo som hjälpte mig! ^^ jag bytte ut 1:an i sql-frågan mot en 0:a, och lägger till +1 varje gång, så det börjar på 1 och ökar hela tiden :)

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

## #10 — silo, 2010-08-26T13:56Z

Ja, sorry. Glömde ju lägga till 1 också, får byta ut 1 mot 0 i ISNULL-delen...

```
SELECT @Number = ISNULL(MAX(number), 0) + 1
FROM inquirydata 
WHERE (companyID = @companyID)
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/184460-if-sats-i-stored-procedure
