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
LarsGMedlem sedan dec. 200012 464 inlägg 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
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
Aha! - Pling!
Men det blev ändå..
Incorrect syntax by the keyword 'else'
LarsGMedlem sedan dec. 200012 464 inlägg 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.