Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Parametre optionnel proc stockee

4 réponses
Avatar
herve
Bonjour,
J'ai une procedure stockée de mise à jour. Seulement voilà plutôt qu'en
utiliser plusieurs je souhaiterai mettre en déclaration des paramètres
en option afin de ne pas mettre à jour certains champs.
Comment faire?
Merci d'avance
a+
herve

4 réponses

Avatar
Laurent Moreau
Il suffit de donner une valeur a ton param quand tu le déclares:

Ex:
CREATE PROCEDURE [dbo].[psu_Test]
@Champ1 AS SmallInt=NULL,
@Champ2 AS Integer=NULL,
@Champ3 AS VarChar(50)=NULL

.......


Pour appeler la porc:

EXEC psu_Text @Champ2





Laurent.


"herve" wrote in message
news:
Bonjour,
J'ai une procedure stockée de mise à jour. Seulement voilà plutôt qu'en
utiliser plusieurs je souhaiterai mettre en déclaration des paramètres
en option afin de ne pas mettre à jour certains champs.
Comment faire?
Merci d'avance
a+
herve



Avatar
herve
Laurent Moreau a écrit:
Il suffit de donner une valeur a ton param quand tu le déclares:

Ex:
CREATE PROCEDURE [dbo].[psu_Test]
@Champ1 AS SmallInt=NULL,
@Champ2 AS Integer=NULL,
@Champ3 AS VarChar(50)=NULL

.......


Pour appeler la porc:

EXEC psu_Text @Champ2



Merci mais j'avai tester un truc comme çà mais dans le cas d'une mise à
jour celà me remplace par un valeur "NULL" ce qui n'est pas le but
J'aurai aimé une façon simple du genre Optional @champx , mais je pense
qu'il faut passer par un test sur chaque champ ce qui va s'avérer vite
fastidieux :-(
a+
herve
Avatar
Olivier PIERI [MS]
Vous n'etes pas obliger de tester chaque champs grace a la fonction isnull.

voici un petit exemple

create proc monupdate (@param1 varchar(10) = null, @param2 varchar(10) null)
as
update matable
set col1 = isnull (@param1, col1), col2 = isnull(@param2, col2)
return

Olivier PIERI

"herve" wrote in message
news:
Laurent Moreau a écrit:
> Il suffit de donner une valeur a ton param quand tu le déclares:
>
> Ex:
> CREATE PROCEDURE [dbo].[psu_Test]
> @Champ1 AS SmallInt=NULL,
> @Champ2 AS Integer=NULL,
> @Champ3 AS VarChar(50)=NULL
>
> .......
>
>
> Pour appeler la porc:
>
> EXEC psu_Text @Champ2

Merci mais j'avai tester un truc comme çà mais dans le cas d'une mise à
jour celà me remplace par un valeur "NULL" ce qui n'est pas le but
J'aurai aimé une façon simple du genre Optional @champx , mais je pense
qu'il faut passer par un test sur chaque champ ce qui va s'avérer vite
fastidieux :-(
a+
herve



Avatar
herve
Olivier PIERI [MS] a écrit:
Vous n'etes pas obliger de tester chaque champs grace a la fonction isnull.

voici un petit exemple

create proc monupdate (@param1 varchar(10) = null, @param2 varchar(10) > null)
as
update matable
set col1 = isnull (@param1, col1), col2 = isnull(@param2, col2)
return

Olivier PIERI




Ok, merci mais il faut sacrément faire attention quand on dépasse 3 ou 4
champs. Pour ma part j'ai traité le pb en amont. Comme il s'agissait
d'un formulaire web, j'ai rechargé toutes les valeurs dans celui-ci ce
qui m'évite d'écraser celles qui ne sont pas modifiées.
Cordialement
herve