2013-04-10 4 views
1

Je suis en train de définir 2 variable déclarée avec le cas lorsque des blocscas SQL lorsque le jeu de variables

Voici mon code:

DECLARE @like bit,@dislike bit 
if exists 
(select * 
    ,@like = (CASE WHEN likeordislike = 1 THEN 'true' ELSE 'false' END) 
    ,@dislike=(CASE WHEN likeordislike = 0 THEN 'true' ELSE 'false' END) 
    from likeordislike 
) 

Mais quand j'exécute la requête renvoie des erreurs:

Msg 102, niveau 15, état 1, ligne 4
Syntaxe incorrecte près de '='.

Tout va bien? Impossible de comprendre

+0

Vous ne pouvez pas définir des variables et renvoyer des résultats de ligne dans la même requête; c'est l'un ou l'autre. –

+0

Likeordislike est une table et une colonne dans cette table? Y a-t-il seulement une rangée? Qu'essayez-vous de faire? Et pourriez-vous montrer l'information de colonne de table, combien de rangées sont là? –

+0

J'ai une table nommée likeordislike qui a 4 coulmns (comment_id, utilisateur, id, likeordislike, event_date), Quand un utilisateur clique comme j'insère 1 dans likeordislike colonne, si je n'aime pas 0.Je dois sélectionner comme ou ne pas aimer @RalfdeKleine – serdar

Répondre

1
if (select count(*) from likeordislike where user = @user and comment_id = @comment_id) = 0 
begin 
    insert into likeordislike etc 
end 
else 
    update likeordislike etc 
end