begin process at 2010 07 29 22:22:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Triggers

 > VALIDATION DU FORMAT DU N° DE TÉLÉPHONE AVEC TSQL

VALIDATION DU FORMAT DU N° DE TÉLÉPHONE AVEC TSQL


 Description

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

  • 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
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


 Sources de la même categorie

Source avec Zip Source avec une capture TRIGGER DE MAJ par softnour
ENREGISTRER LES MISES À JOUR DE CHAQUE PERSONNE CONNECTÉ SUR... par witch17
SQL SERVER 2005 : HISTORISER LES PROCÉDURES STOCKÉES D'UNE B... par skweeky
Source avec Zip GESTION DE STOCK À L'AIDE D'UN TRIGGER [SQL SERVER 2000] par Draven

 Sources en rapport avec celle ci

SQL SERVER 2005 : HISTORISER LES PROCÉDURES STOCKÉES D'UNE B... par skweeky
Source avec Zip SOURCES POUR LE TUTO TEAM SYSTEM ÉDITION DBA par skweeky
DÉSACTIVER UNE CONNEXION (LOGIN) SUR SQL SERVER par skweeky
RENOMER UNE CONNEXION (LOGIN) SOUS SQL SERVER par skweeky
PORTÉ IIF SUR T-SQL par Malkuth

Commentaires et avis

Commentaire de skweeky le 06/04/2007 20:27:31 administrateur CS

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.

Commentaire de bad_smi le 06/04/2007 20:37:31

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+

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

tsql trigger [ par samfp ] [b]SAM PROGRAMMER[/b] bonjour, j'ai créer une table article dont le clé est générer automoatiquement avec un trigger au niveau de l'insertion, j'ai ut Trigger et recupération des données [ par croftman ] Bonjour! Voila j'ai ce trigger : [code=autre]DELIMITER | DROP TRIGGER test| CREATE TRIGGER test BEFORE DELETE ON clients FOR EACH ROW BEGIN DECL Besoin d'aide pour trigger dans mysql [ par Darkgattsu ] Salut, c'est mon tout premier message sur ce fofo alors qu'il m'aide quasiment au quotidien depuis 2ans ^^. Je suis en prépa IG Analyste Programmeur e connexion de easyphp/Mysql au serveur SQLserver 2000 [ par tarekou ] salut tous , j'ai une interface php avec Dreamweaver ... et je l'ai excuté avec easyphp en local..et sa foncitonne!!! Maitenant je veux connecter ce Trigger ne marche pas avec mon appli alors qu'il marche sous ligne de commande [ par ziss ] Bonjour tout le monde. voilà! j'ai créé un trigger sur une table et il s'exécute after insert sur la dite table. Mais le problème est que le triiger m Trigger after delete [ par mictif ] Bonjour ! Je suis confronté a un probleme. je ne connais pas bien les trigger mais ai besoin d'en utiliser un. J'aimerais, lorsque qu'une ligne est execution des trigger [ par ravah2009 ] salut j ai une question sur l execution des triggers avec sql server 2005 dans l'envirenement visuel studio 2008 si quelqu'un a fait une execution de sqlserver datetime [ par koukou09 ] Salut, je veux faire une insertion des données dans sqlserver à partir d'un frame dans parmi les composant une date qui est définit comme type date trigger et delete [ par cudenetf ] bonjour, je sais pas trop si je suis dans la bonne rubrique ma question concerne donc les triggers j'aimerais supprimer automatiquement (avec le trig Trigger qui se déclenche chaque mois [ par youma85 ] Salut tous le monde je suis entrain de réaliser un projet, dans le quel je dois insérer les informations d'une table dans une autre table chaque mois


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales