IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Récupérer les données Insert - SQL Server 2000


Sujet :

MS SQL Server

  1. #1
    jfc
    Invité(e)
    Par défaut Récupérer les données Insert - SQL Server 2000
    Salut,

    Depuis un agent Lotus Notes via un connecteur [FONT=Helv]
    LSX for Lotus Connectors, j'écris des données dans une base SQL avec une chaîne SQL

    [/FONT]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO tblMandats (ManNekoId, ManGarId,TypeMandat,NoExterne,NomExterne,DelaiExterne,DelaiExecution,EnvoiNW,Peremption,Mandate,LangueMandat,Statut) VALUES ('A1','A1931',1,'test','test','12/20/2006','09/18/2006',1,'12/31/2015','test','F',1)
    SQL me retourne 1 ligne affectée. Ce que je voudrais faire, c'est de récupérer l'ID de la ligne insérée (champ MandatId).

    J'ai trouvé sur MSDN OUTPUT inserted.xxxx à insérer dans la chaîne INSERT entre l'énumération des colonnes et des valeurs. Cela ne fonctionne pas, mais je pense que c'est correct car j'utilise SQL Server 2000 et non pas SQL Server 2005.

    Comment faire avec SQL Server 2000 ?

  2. #2
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 274
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 274
    Points : 1 280
    Points
    1 280
    Par défaut
    avec @@identity

    This example inserts a row into a table with an identity column and uses @@IDENTITY to display the identity value used in the new row.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO jobs (job_desc,min_lvl,max_lvl)VALUES ('Accountant',12,125)SELECT @@IDENTITY AS 'Identity'
    j'suis vert !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Points : 39
    Points
    39
    Par défaut
    Attention avec @@IDENTITY ...

    - @@IDENTITY renvoie la dernière valeur d'identité générée pour la connexion en cours quelle que soit la table (déconseillée si tu utilises les triggers, amusement garanti si tu utilises, par ex., des tables de log dans des triggers INSERT)

    - IDENT_CURRENT("Table_name") renvoie la dernière valeur d'identité générée pour la table spécifiée quelle que soit la connexion (déconseillée en multi-user)

    - SCOPE_IDENTITY() renvoie la dernière valeur d'identité générée pour l'étendue, càd dans le bloc d'instructions courant (donc, si tu insères dans une table T1 qui a un trigger qui insère dans une table T2, tu recevras bien l'identité de T1 car le bloc courant est du style ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO T1(...)
    SELECT SCOPE_IDENTITY()
    Je te conseille donc fortement d'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SCOPE_IDENTITY()
    dans tous les cas ... cela t'évitera bien des soucis si ta base de données doit évoluer.

  4. #4
    jfc
    Invité(e)
    Par défaut
    Merci de la réponse.

    Il ne me reste qu'à récupérer la valeur retournée par la connection (plus facile à dire que trouver la classe qui a récupéré la valeur). Mais ceci n'est plus le travail dans SQL-Server, mais le traitement dans Lotus Notes.

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/11/2008, 11h54
  2. Réponses: 2
    Dernier message: 08/08/2008, 16h50
  3. les instaces de sql server 2000 qui roullent sur le LAN
    Par Lord HaSaN dans le forum Accès aux données
    Réponses: 2
    Dernier message: 06/01/2007, 23h22
  4. Réponses: 3
    Dernier message: 20/12/2006, 17h12
  5. Gérer les dates avec SQL Server 2000
    Par saby dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/01/2006, 18h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo