Procedure Insert du dernier ID

Résolu
ecureuilmasque Messages postés 13 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 9 juin 2008 - 14 déc. 2007 à 17:42
ecureuilmasque Messages postés 13 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 9 juin 2008 - 14 déc. 2007 à 20:47
Bonjour,
Je veux recupérer le dernier ID lors du dernier insert avec Select @@IDENTITY.
Voici la procedure :
ALTER PROCEDURE sp_insertbug_IHM_Bug

    @Assignation nvarchar(50),
    @Priorité int,
    @Sujet nvarchar(100),
    @Détail nvarchar(max),
    @NotifyList nvarchar(max),

AS
BEGIN
    SET NOCOUNT ON;

    INSERT INTO IHM_BugTrack_Detail
                (Sujet,Détail,D_Enregistrement,NotifyList)
    VALUES        (@Sujet,@Détail,Getdate(),@NotifyList);

SELECT @@IDENTITY as ID

    INSERT INTO IHM_BugTrack
               (Assignation, Status, Priorité,ID_Detail,ID_Appli)
    VALUES     (@Assignation,'Ouvert',@Priorité,ID,9);

Le Message d'erreur : Le nom "ID" n'est pas autorisé dans ce contexte.
Les expressions valides sont des constantes, des expressions constantes et (dans certains contextes) des variables.
Les noms de colonnes ne sont pas autorisés.

Je comprends bien mais comment alros passer cette valeur à mon deuxieme INSERT INTO?

3 réponses

ecureuilmasque Messages postés 13 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 9 juin 2008 1
14 déc. 2007 à 20:47
Par contre en suivant tes conseils ...

DECLARE @id INT;
SET @id = SCOPE_IDENTITY()

marche trés bien. merci
3
gilletcsteph Messages postés 39 Date d'inscription samedi 31 janvier 2004 Statut Membre Dernière intervention 22 mai 2008
14 déc. 2007 à 18:23
Moi je verrais plus un truc comme ça, une variable sans @, il aime pas trop sql server...

BEGIN
    SET NOCOUNT ON;

    INSERT INTO IHM_BugTrack_Detail
                (Sujet,Détail,D_Enregistrement,NotifyList)
    VALUES        (@Sujet,@Détail,Getdate(),@NotifyList);

DECLARE @id int
SET @id = SELECT @@IDENTITY

    INSERT INTO IHM_BugTrack
               (Assignation, Status, Priorité,ID_Detail,ID_Appli)
    VALUES     (@Assignation,'Ouvert',@Priorité,@id,9);

J'ai pas testé et je sais pas si la syntaxe est la bonne pour ce que je te propose, mais c'est dans ce genre la. Déclaration de vairable puis assignation d'une valeur.

Steph
0
ecureuilmasque Messages postés 13 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 9 juin 2008 1
14 déc. 2007 à 20:15
Non, j'obtiens : Syntaxe incorrecte vers le mot clé 'SELECT'.
0
Rejoignez-nous