Problème SQL

Résolu
Salut, je souhaite insérer dans ma base un grand nombre de requêtes mais la syntaxe SQL me pose problème. Je voudrais donc pouvoir faire :

INSERT INTO MENU (id, titre, lien)
VALUES ('', 'La laponie', 'index.php?option=com_content&view=article&id=XXX')

où XXX est un nombre récupéré d'une requête de type :

SELECT id
FROM ARTICLE
WHERE titre = 'La Laponie'

J'ai essayé le transact sql et une requete du genre :

DECLARE @var int

@var = (SELECT id FROM Article WHERE titre = 'La laponie')

INSERT INTO MENU (id, titre, lien)
VALUES ('', 'La laponie', 'index.php?option=com_content&view=article&id=@var')

Ça ne marche pas et je ne sais pas si ça pourrait résoudre mon problème. C'est pourquoi je m'adresse à vous.
Excusez moi si mes exemples ne sont pas clairs ou vous semble illogique j'ai essayé de faire au plus simple :)

3 réponses

  1. Bonjour,

    En t-SQL, il me semble que « @var = (SELECT id FROM Article WHERE titre = 'La laponie') » devrait plutôt être :

    SELECT @var = id FROM Article WHERE titre = 'La laponie'

    Xavier
    0
    1. Ok je vais essayer ça merci.
      0
      1. Bonjour frero
        Bon si je comprend bien tu as une table contenant des article(id , nom) et une table qui va récupérer pour chaque enregistrement id article et l'insérer au bout du lien
        1er Blm :

        INSERT INTO MENU (id, titre, lien)
        VALUES ('', 'La laponie', 'index.php?option=com_content&view=article&id=@var')

        Dans ta requete tu as 3 paramètre alors que t as inséré que les 2 dernier +++

        2 eme blm :

        erreur de syntaxe : faut ecrire :
        (@var,'La laponie', 'index.php?option=com_content&view=article&id='+cast(@var as varchar(10)))

        si tu veux creer automatiquement des lien pour tout les article utilise une procédure qui implémente un curseur

        a++
        0