Bonjour,
Voici le contexte de mon problème :
Je possède une BDD avec différents films, chacun sont catégorisé ( ex : action, aventure etc...) et une partie de ces films est dans la catégorie divers. J'aimerais pouvoir les changer de catégorie ( je possède déjà l’interface nécessaire en C# il me manque juste la procédure stockée que je n'arrive pas à faire). Je dois pouvoir changer de catégorie un film et le mettre dans plusieurs catégorie à la fois : c'est à dire qu'il ne sera plus présent dans divers, mais présent dans les autres catégories.
J'avais commencé par une requête UPDATE qui marchait très bien, seulement je n'ai qu'un seul choix de catégorie, l'UPDATE ne modifie qu'une seule valeur. Ex catégorie divers = 0, aventure = 1, action = 2. Si je souhaites mettre mon film dans action le 0 sera remplacé par le 2 et je souhaite ensuite le mettre dans action le 2 sera remplacé par 1.
Ce je que voudrais faire est une requête de type INSERT INTO en reprenant à chaque fois la même ligne mais en la modifiant à chaque fois au niveau de la catégorie pour que le film soit visible dans action et aventure par exemple.
Voici ma requête UPDATE :
Je passe par trois tables différentes pour faire le lien entre les données. D'après ce que j'ai vu sur la documentation du site il existe une requête de type INSERT INTO... SELECT... pour copier d'un table à une autre, est-il possible de l'utiliser dans mon cas en changeant uniquement la valeur de catégorie à chaque fois ? Coté C# la requête peut être appelée plusieurs fois, avec une boucle for each ce n'est pas le soucis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ALTER PROCEDURE [dbo].[obo_UpdateCategory] @ProgramId varchar(20), @CategoryId int AS BEGIN SET NOCOUNT ON; UPDATE dbo.SubCategory SET CategoryId = @CategoryId FROM SubCategory AS sub LEFT JOIN dbo.ProgramCategory AS prog ON sub.Id = prog.SubCategoryId LEFT JOIN dbo.vActiveContent AS vac ON vac.Id = prog.ProgramId WHERE ProgramId = @ProgramId END
Merci par avance
Julien
PS: j'espère avoir été clair dans l'expression de mon problème, demandez-moi si vous voulez d'autres précisions.
Partager