---
title: "if och else i stored procedure"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/134810-if-och-else-i-stored-procedure"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "andreas_lindh"
published: "2005-09-25T19:37:37.000Z"
updated: "2005-09-25T19:45:55.000Z"
replies: 1
views: 195
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/134810-if-och-else-i-stored-procedure"
---

# if och else i stored procedure

## #1 — andreas_lindh, 2005-09-25T19:37Z

Försöker använda if och else i en stored procedure

```
LTER PROCEDURE vgr_saveGames
@gameID int,
@divisionID int,
@round nvarchar(25),
@gameNumber bigInt,
@gameDate dateTime,
@gameTIme nvarchar(5),
@hometeam int,
@awayteam int,
@homescore int,
@awayscore int,
@gameEnded bit,
@overtime int
AS
if @gameID = 0
	if exists(select gameID from r_games where gameNumber = @gameNumber and divisionID = @divisionID)
		update r_Games set gameNumber = gameNumber + 1 
		where divisionID = @divisionID and gameNumber >= @gameNumber
		insert into r_Games(divisionID,[round],gameNumber,gameDate,gameTime,hometeam,awayteam)
		values(@divisionID,@round,@gameNumber,@gameDate,@gameTime,@hometeam,@awayteam)
	else
		insert into r_Games(divisionID,[round],gameNumber,gameDate,gameTime,hometeam,awayteam)
		values(@divisionID,@round,@gameNumber,@gameDate,@gameTime,@hometeam,@awayteam)
else
	update r_Games set gameDate = @gameDate,gameTime = @gameTIme,[round] = @round,gameNumber = @gameNumber,
	homeTeam = @homeTeam,awayTeam = @awayteam,homeScore = @homeScore,awayScore= @homeScore 
	where gameID = @gameID
```

Men jag får felmeddelandet
"Incorrect syntax near the keyword 'else'"

Kan jag inte göra så här eller är det något annat fel?

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

## #2 — emission, 2005-09-25T19:45Z

Du måste kapsla in, annars förstår inte SQL-tolken vad du vill göra

```
if @gameID = 0
BEGIN
	if exists(select gameID from r_games where gameNumber = @gameNumber and divisionID = @divisionID)
        BEGIN
		update r_Games set gameNumber = gameNumber + 1 
		where divisionID = @divisionID and gameNumber >= @gameNumber
		insert into r_Games(divisionID,[round],gameNumber,gameDate,gameTime,hometeam,awayteam)
		values(@divisionID,@round,@gameNumber,@gameDate,@gameTime,@h  ometeam,@awayteam)
        END
	else
        BEGIN
		insert into r_Games(divisionID,[round],gameNumber,gameDate,gameTime,hometeam,awayteam)
		values(@divisionID,@round,@gameNumber,@gameDate,@gameTime,@h  ometeam,@awayteam)
        END
END
else
BEGIN
	update r_Games set gameDate = @gameDate,gameTime = @gameTIme,[round] = @round,gameNumber = @gameNumber,
	homeTeam = @homeTeam,awayTeam = @awayteam,homeScore = @homeScore,awayScore= @homeScore 
	where gameID = @gameID
END
```

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

---

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