OVH Cloud OVH Cloud

Question de débutant...

2 réponses
Avatar
Laurent Jordi \(www.ezlogic.mc\)
Salut @ ts

Je suis en train de créer une petite proc stock insert into

ALTER PROCEDURE NEWSLETTER_Contacts_Add
(
@L01_MT_Clients int,
@txteMail nvarchar(255),
@txtNomPrenom nvarchar(50) = null,
@dteNaissance datetime = null,
@txtProfession nvarchar(50) = null,
@txtCP nvarchar(10) = null,
@txtPays nvarchar(50) = null
)
AS
SET NOCOUNT ON

INSERT INTO NEWSLETTER_ST_Contacts
(dteInscription,
L01_MT_Clients,txteMail,txtNomPrenom,dteNaissance,txtProfession,txtCP,txtPay
s)
VALUES (GETDATE(),
@L01_MT_Clients,@txteMail,@txtNomPrenom,@dteNaissance,@txtProfession,@txtCP,
@txtPays)

RETURN

Quelqu'uin pourrait-il me dire comment récupérer le code (Compteur Int
Primary Key) du nouvel enreg créé en sortie.
J'ai essayé de rajouter ,@Code int Output aux paramètres et
SELECT @Code=@@IDENTITY FROM NEWSLETTER_ST_Contacts

Avant le RETURN mais ça ne marche pas alors que sans ces ligne c'est OK mais
je n'ai pas de sortie

Je pense que ce doit être une question hyper bateau mais faut la pauser au
moins une fois... ;)

@+

LJ

2 réponses

Avatar
Synopsis
Tu dois récuperer @@Identity juste après ton Insert

Pour récupérer la valeur de l'incrément automatique
, déclare dans de ta procédure une variable de retour

CREATE PROCEDURE procedure_name
, @param1
, @param2
, ...
, @ID int OUTPUT
AS

INSERT INTO ...
SELECT @ID = @@IDENTITY

---

EXEC procedure_name @param1, @param2, ...., @myID

====
Le RETURN autorise seulement le type int

CREATE PROCEDURE procedure_name
, @param1
, @param2
, ...
AS

INSERT INTO ...
SELECT @ID = @@IDENTITY

Return (@ID)

---

EXEC @myID= procedure_name @param1, @param2, ....


"Laurent Jordi (www.ezlogic.mc)" <inf[o]@ezlogic.mc> a écrit dans le message
de news:OzSy$
Salut @ ts

Je suis en train de créer une petite proc stock insert into

ALTER PROCEDURE NEWSLETTER_Contacts_Add
(
@L01_MT_Clients int,
@txteMail nvarchar(255),
@txtNomPrenom nvarchar(50) = null,
@dteNaissance datetime = null,
@txtProfession nvarchar(50) = null,
@txtCP nvarchar(10) = null,
@txtPays nvarchar(50) = null
)
AS
SET NOCOUNT ON

INSERT INTO NEWSLETTER_ST_Contacts
(dteInscription,



L01_MT_Clients,txteMail,txtNomPrenom,dteNaissance,txtProfession,txtCP,txtPay
s)
VALUES (GETDATE(),



@L01_MT_Clients,@txteMail,@txtNomPrenom,@dteNaissance,@txtProfession,@txtCP,
@txtPays)

RETURN

Quelqu'uin pourrait-il me dire comment récupérer le code (Compteur Int
Primary Key) du nouvel enreg créé en sortie.
J'ai essayé de rajouter ,@Code int Output aux paramètres et
SELECT @Code=@@IDENTITY FROM NEWSLETTER_ST_Contacts

Avant le RETURN mais ça ne marche pas alors que sans ces ligne c'est OK


mais
je n'ai pas de sortie

Je pense que ce doit être une question hyper bateau mais faut la pauser au
moins une fois... ;)

@+

LJ




Avatar
Laurent Jordi \(www.ezlogic.mc\)
Impec

ça marche

Merci beaucoup

@+

LJ

"Synopsis" a écrit dans le message de
news:ci987s$1q52$
Tu dois récuperer @@Identity juste après ton Insert

Pour récupérer la valeur de l'incrément automatique
, déclare dans de ta procédure une variable de retour

CREATE PROCEDURE procedure_name
, @param1
, @param2
, ...
, @ID int OUTPUT
AS

INSERT INTO ...
SELECT @ID = @@IDENTITY

---

EXEC procedure_name @param1, @param2, ...., @myID

==== >
Le RETURN autorise seulement le type int

CREATE PROCEDURE procedure_name
, @param1
, @param2
, ...
AS

INSERT INTO ...
SELECT @ID = @@IDENTITY

Return (@ID)

---

EXEC @myID= procedure_name @param1, @param2, ....


"Laurent Jordi (www.ezlogic.mc)" <inf[o]@ezlogic.mc> a écrit dans le


message
de news:OzSy$
> Salut @ ts
>
> Je suis en train de créer une petite proc stock insert into
>
> ALTER PROCEDURE NEWSLETTER_Contacts_Add
> (
> @L01_MT_Clients int,
> @txteMail nvarchar(255),
> @txtNomPrenom nvarchar(50) = null,
> @dteNaissance datetime = null,
> @txtProfession nvarchar(50) = null,
> @txtCP nvarchar(10) = null,
> @txtPays nvarchar(50) = null
> )
> AS
> SET NOCOUNT ON
>
> INSERT INTO NEWSLETTER_ST_Contacts
> (dteInscription,
>



L01_MT_Clients,txteMail,txtNomPrenom,dteNaissance,txtProfession,txtCP,txtPay
> s)
> VALUES (GETDATE(),
>



@L01_MT_Clients,@txteMail,@txtNomPrenom,@dteNaissance,@txtProfession,@txtCP,
> @txtPays)
>
> RETURN
>
> Quelqu'uin pourrait-il me dire comment récupérer le code (Compteur Int
> Primary Key) du nouvel enreg créé en sortie.
> J'ai essayé de rajouter ,@Code int Output aux paramètres et
> SELECT @Code=@@IDENTITY FROM NEWSLETTER_ST_Contacts
>
> Avant le RETURN mais ça ne marche pas alors que sans ces ligne c'est OK
mais
> je n'ai pas de sortie
>
> Je pense que ce doit être une question hyper bateau mais faut la pauser


au
> moins une fois... ;)
>
> @+
>
> LJ
>
>