begin process at 2010 02 09 19:52:06
  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 Trigger [ par frop01 ] Salut,J'ai une table Categorie (Code_cat, Libelle) et une autre table sous_categorie (code_scat, code_cat, libelle)Je voudrais créer un déclencheur qu création d'une automatique d'une base de données SQLServer [ par MokhTelnet ] bonjourj'ai besoin de savoir comment on peut créer une base de données SQLServer lors de l'installation d'une application.mon client ne veux se charge Commande DOS pour SQLServer 7 [ par MokhTelnet ] y a t'il une commande dos pour SQLSERVER 7 ?(comme la commande sqlplus pour oracle)


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 0,764 sec (3)

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