Validation du format du n° de téléphone avec tsql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 536 fois - Téléchargée 19 fois

Contenu du snippet

cette source est un trigger réalisé avec T-sql de sql server 2000
le trigger permet de valider le format d'un numéro de téléphone avant sa sauvegarde dans la bd.
il est donc déclencher si le numéro contient des caractères autre que '0..9' et '.'
crée une table T_client ds une bd sous "ms sql server"; qui contiendera un champ cli_tel.
facile à comprendre ;)

Source / Exemple :


create TRIGGER VerifyPhone
on T_client
instead of insert,update
   as 
    begin
           declare @i smallint,@b smallint,@tel varchar(20) 
           set @tel=(select cli_tel from INSERTED)    
  
           select @b=1
           select @i=1
           while @i<=len(@tel) and @b=1
              begin
                if (ascii(substring(@tel,@i,1))<48 or ascii(substring(@tel,@i,1))>57) and (ascii(substring(@tel,@i,1))<>46)                   
                 	select @b=0
                 select @i=@i+1
              end
           if @b=0
               begin
                 ROLLBACK TRANSACTION
                 print 'Transaction annulée'
                 print 'numéro de téléphone Invalide'
               end
           else
               begin
                  if update(cli_tel)
                     delete T_client where cli_id=(select cli_id from deleted)
                  insert T_client select * from INSERTED
               end      
end

Conclusion :


toute amélioartion est souhaitable.
bon codage

A voir également

Ajouter un commentaire

Commentaires

cs_skweeky
Messages postés
261
Date d'inscription
mercredi 3 mai 2006
Statut
Modérateur
Dernière intervention
11 janvier 2010
2 -
Perso j'éviterais le trigger INSTEAD OF, acr il y a en un seul de chauqe type, et du coup c'est plus compliqué à mettre en place...
Le type AFTER serait parfait pour çà.
Deuxièmement un CHECK avec une fonction réalisant la même chose serait mieux (le CHECK vérifiant les valeurs avant insertion).
Dernier point le
select @b=1
select @i=1
Se simplifie en
select @b=1, @i=1
Sinon bonne idée.
bad_smi
Messages postés
17
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
26 avril 2008
-
merci SKWEEKY pour tes apréciations.
en ce qui concerne le check j'essayerai de le mettre en place.ça fera moins de code ;)
a+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.