Bonjour à toutes et à tous,
Je viens de chercher pendant un long moment à faire fonctionner le code qui suit :
Mais je ne comprend pas pourquoi celui-ci ne fonctionnait pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 CREATE FUNCTION dbo.ConfirmMotDePasse2 ( @N_User varchar(100), @Equipe varchar(20), @Pass varchar(20) ) RETURNS @MaTable TABLE(Nb int) AS BEGIN IF (@Equipe is NOT NULL) BEGIN insert into @MaTable(Nb) SELECT COUNT(password) FROM T_utilisateur_L1 WHERE Nom_user = @N_User AND Lettre_equipe = @Equipe AND password = @Pass END; ELSE BEGIN insert into @MaTable(Nb) SELECT COUNT(password) FROM TUtilisateur WHERE Nom_user = @N_User AND Lettre_equipe is null AND password = @Pass END RETURN; END
Alors que le code suivant, plus simple, mais écrit différemment, fonctionne également :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 CREATE FUNCTION dbo.ConfirmMotDePasse2 ( @N_User varchar(100), @Equipe varchar(20), @Pass varchar(20) ) RETURNS TABLE AS BEGIN IF (@Equipe is NOT NULL) BEGIN SELECT COUNT(password) FROM Tutilisateur WHERE Nom_user = @N_User AND Lettre_equipe = @Equipe AND password = @Pass END; ELSE BEGIN SELECT COUNT(password) FROM TUtilisateur WHERE Nom_user = @N_User AND Lettre_equipe is null AND password = @Pass END RETURN; END
Quelqu'un peut t'il m'expliquer pourquoi dans un cas il faut déclarer la table de retour et pas dans l'autre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 CREATE FUNCTION dbo.ConfirmMotDePasse ( @N_User varchar(100), @Equipe varchar(20), @Pass varchar(20) ) RETURNS TABLE AS RETURN ( SELECT COUNT(password) as Nb FROM TUtilisateur WHERE Nom_user = @N_User AND Lettre_equipe = @Equipe AND password = @Pass )
D'avance merci,
Cordialement,
Alex01
Partager