IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Implémentation auto de "0" dans une colonnes avec "TRIGGER"


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien télécom
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Technicien télécom
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Par défaut Implémentation auto de "0" dans une colonnes avec "TRIGGER"
    Bonjour,

    Je souhaiterais crée une regle SQL dans une de mes tables, je m'explique :
    Dans la colonne "tel" a chaque fois qu'il enregistre un numéro sur 4 chiffre, je voudrais qu'il rajoute un "0"
    Ex: Si la table recoit le "5899", je veux qu'il en resort "05899".

    J'ai entendu que on pouvais le faire avec le fameux trigger, mais je ne connais pas les manip à faire..

    Merci par avance de votre aide

  2. #2
    Membre actif
    Homme Profil pro
    R&D
    Inscrit en
    Avril 2004
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : R&D

    Informations forums :
    Inscription : Avril 2004
    Messages : 127
    Par défaut
    Bonjour,

    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
    27
    28
     
    CREATE TABLE dbo.t1
    (
    	id int PRIMARY KEY,
    	tel nvarchar(16)
    )
    GO
     
    CREATE TRIGGER dbo.t1_update_tel ON dbo.t1 FOR INSERT, UPDATE
    AS
    BEGIN
    	SET NOCOUNT ON;
    	UPDATE t1
    	SET t1.tel = '0' + t1.tel
    	FROM t1 INNER JOIN inserted ON t1.id = inserted.id
    	WHERE substring(t1.tel, 1, 1) <> '0'
    END
    GO
     
    INSERT INTO t1 (id, tel)
    SELECT 1, '5899'
    UNION ALL SELECT 2, '7896'
    UNION ALL SELECT 3, '1358'
    GO
    SELECT * FROM t1
    GO
    DROP TABLE dbo.t1
    GO

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien télécom
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Technicien télécom
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Par défaut
    Merci Serguei, avec du retad car je n'avais pas recu de notification de nouveau message.
    je vais tester :-)

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien télécom
    Inscrit en
    Septembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Technicien télécom
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3
    Par défaut
    Bonjour,

    Quand le trigger est activé, si je balance des lignes manuellement, le trigger joue son role, mais des que c'est le système qui souhaite insérer une ligne et bien il n'y arrive pas. En gros quand le trigger est activer aucune ligne ne s'insere dans la table...
    des que je le désactiver les insertions fait par le systeme fonctionnent de nouveau...

    Je vois pas d'ou cela pourrais venir..

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Le système n'insère pas de lignes... Que voulez-vous dire par là ?

    Si vous avez des batchs d'insertions qui utilisent BCP.exe ou BULK INSERT pour alimenter votre table depuis un fichier, il faut veiller à ce que l'ordre BULK INSERT ou la commande BCP active le déclencheur, ce qui n'est pas le cas par défaut.
    • Avec BULK INSERT, rajouter l'option : FIRE_TRIGGERS
    • Avec BCP.exe, rajoutez le commutateur : -h "FIRE_TRIGGERS"


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [XL-2013] valider la présence d'un mot dans une colonne avec .autofilter
    Par billybobbonnet dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/06/2014, 17h56
  2. Supprimer les doublons dans une colonne avec condition
    Par sims92.66 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/02/2012, 18h58
  3. Réponses: 5
    Dernier message: 10/08/2011, 18h05
  4. Faire la recherche d'un élement dans une colonne avec la fonction match
    Par ckrikri dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/11/2008, 11h54
  5. [DataGridViewButtonColumn] Bouton dans une colonne avec une image
    Par aurelien.tournier dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/11/2007, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo