---
title: "Problem med stored procedure..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/88542-problem-med-stored-procedure"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Karin_Parin"
published: "2003-10-15T11:11:05.000Z"
updated: "2003-10-15T15:05:47.000Z"
replies: 6
views: 274
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/88542-problem-med-stored-procedure"
---

# Problem med stored procedure...

## #1 — Karin_Parin, 2003-10-15T11:11Z

Hej!
Jag är ny vad gäller SP och skulle behöva lite hjälp.
Har en tabell som lagrar filer som blir nedladdade på en sida. Nu vill jag skriva en SP som uppdaterar tabellen tblFil.
Men om samma fil laddas ner samma dag ska värdet i fältet FilDownload ökas på med ett..
Har försökt genom olika förslag här men ja, I need some help! :l 

```
CREATE PROCEDURE sp_Downloads
(
@P_FilNamn varchar(255),
@P_FilDownload int,
@P_Datum smalldatetime,
@P_SiteID nvarchar(10)
)
AS
BEGIN
DECLARE
@sSQL nvarchar(500)
SET NOCOUNT ON
SET @sSQL = 'INSERT INTO tblFil (FilNamn,Datum,SiteID) 
VALUES(''' + @P_FilNamn +''',''' +@P_ Datum+''',''' +  @P_FilDownload + ''')'

if not exists(
SELECT * 
  FROM tblFil
WHERE FilNamn= @P_FilNamn 

INSERT INTO tblFil (FilNamn) VALUES(@P_FilNamn)
else
UPDATE
INSERT INTO tblFil (FilNamn,FilDownload,Datum,SiteID)
VALUES
(
@P_FilNamn,@P_FilDownload,@P_Datum,@P_SiteID
)
print @sSQL

EXEC sp_executesql @sSQL

GO
END
RETURN
```

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

## #2 — LarsG, 2003-10-15T13:47Z

```
CREATE PROCEDURE sp_Downloads
(
@P_FilNamn varchar(255),
@P_FilDownload int,
@P_Datum smalldatetime,
@P_SiteID nvarchar(10)
)
AS
set nocount on
if not exists(
SELECT * 
  FROM tblFil
WHERE FilNamn= @P_FilNamn 
  and datediff(day,@p_datum,datum) = 0)
begin
   INSERT INTO tblFil (FilNamn,datum,siteid,filDownload) 
      VALUES(@P_FilNamn,@p_datum,@p_siteid,@P_FilDownload)
else
UPDATE tblFil
  set filDownload = filDownload + 1
 WHERE FilNamn= @P_FilNamn 
  and datediff(day,@p_datum,datum) = 0
```

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

## #3 — Karin_Parin, 2003-10-15T14:31Z

Tackar! Får dock felmeddelande..är det ngt fel i min tabell kanske  eller vad tror du?

Incorrect syntax by the keyword 'else'
Line 22 Incorrect syntax near 0

//Karin

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

## #4 — Lasp, 2003-10-15T14:32Z

End

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

## #5 — Karin_Parin, 2003-10-15T14:36Z

Aha! - Pling!
 Men det blev ändå..
Incorrect syntax by the keyword 'else'

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

## #6 — LarsG, 2003-10-15T14:48Z

Jag missade ett end som matchar det begin som finns efter if

```
CREATE PROCEDURE sp_Downloads
(
@P_FilNamn varchar(255),
@P_FilDownload int,
@P_Datum smalldatetime,
@P_SiteID nvarchar(10)
)
AS
set nocount on
if not exists(
SELECT * 
  FROM tblFil
WHERE FilNamn= @P_FilNamn 
  and datediff(day,@p_datum,datum) = 0)
begin
   INSERT INTO tblFil (FilNamn,datum,siteid,filDownload) 
      VALUES(@P_FilNamn,@p_datum,@p_siteid,@P_FilDownload)
end
else
begin
UPDATE tblFil
  set filDownload = filDownload + 1
 WHERE FilNamn= @P_FilNamn 
  and datediff(day,@p_datum,datum) = 0
end
```

Om man enbart har ett statement efter if så behövs det inget begin end men det skadar inte.

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

## #7 — Karin_Parin, 2003-10-15T15:05Z

Ok, kanon! Tackar!

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/88542-problem-med-stored-procedure
