I have a Songs table with a likes column that holds the number of likes users sent .
Each user sends a boolean (1 or 0) through the C Sharp which adds to the likes column.
About my procedure:
1) A. I want to know if there is more an efficient and short way of writing the part 1 of the function?
B. I had to manually insert '0' instead of the NULL for the first time for the function to work. It wasn't working because the initial value for Likes column is NULL. Is there a way to affect the row for the first time when it has NULL in it?
2) For part 2 of the function with [Users_Likes_Songs] table, I want to update if the user send a like ( true = 1) or removed it (false = 0) (!) How can I update this table for the first time when its rows are completely empty?
I thank you very much if you can help me.
The proc:
CREATE PROC Songs_Likes
@User_ID int,
@SongID int,
@Song_like bit
AS
BEGIN
--- part 1 of the function
IF (@Song_like = 1)
BEGIN
UPDATE [Songs] SET [Likes] = [Likes] + @Song_like
WHERE [Song_ID] = @SongID
END
IF (@Song_like = 0)
BEGIN
UPDATE [Songs] SET [Likes] = [Likes] - 1
WHERE [Song_ID] = @SongID
END
--- part 2 of the function with the second table
UPDATE [Users_Likes_Songs]
SET [LikeSong] = @Song_like WHERE ([UserID] = @User_ID) AND ([SongID] = @SongID)
END
GO
Aucun commentaire:
Enregistrer un commentaire