Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/10/2011, 16h39   #1
Futur Membre du Club
 
Inscription : septembre 2002
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 143
Points : 17
Points : 17
Par défaut Trigger avec action avant ET apres update de champ ?

Bonjour,

Je voudrais savoir s'il est possible de créer un trigger sur un champ d'une table, et que ce trigger puisse agir avant et après l'écriture des données.

Je m'explique : j'ai une table Article avec QteStock et CMUP.
Quand QteStock est modifié, je voudrais que le trigger se déclenche et fonctionne de la manière suivante :

- avant écriture dans la base, on enregistre les valeurs QteStock et CMUP dans une table de travail
- mise à jour effective de la base
- après ecriture, on enregistre les nouvelles valeurs dans cette même table de travail.

Le but final étant d'avoir une table du genre :
Code :
  code_art  |   date_heure  |  qte_avant   |  cmup_avant   |  qte_apres   |   cmup_apres
avec une ligne à chaque fois que QteStock d'un article est modifié.

Est-ce que c'est jouable ?

Merci.
__________________
Postes Dév : W7 SP1 / XP SP3 / Windev 17 / Delphi 7 Entreprise
Serveur : W2k3 SP2 + SQL 2008
Connexion : OLE.DB
fredfred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 21h50   #2
Expert Confirmé Sénior
 
Homme François
Chef de projet NTIC
Inscription : janvier 2007
Messages : 5 352
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC

Informations forums :
Inscription : janvier 2007
Messages : 5 352
Points : 9 745
Points : 9 745
Les triggers Sql Server (qui sont uniquement des triggers "commande" il n'y a pas de trigger "ligne" en SQL SERVER) exposent deux vues (enfin deux pour les trigger UPDATE) qui sont "delete" et "insert".

Il suffit de lire la vue "delete" pour obtenir les valeurs "anciennes" et la vue "insert" pour lire les valeurs "nouvelles" (c'est un peu l'équivalent de :old et :new en Oracle, mais qui ne sont dans le cas d'Oracle qu'accessible dans les triggers "ligne").

Il va de soit qu'un trigger "ON INSERT" n'expose que la vue "insert" et un trigger "ON DELETE" n'expose que la vue "delete".

Que ensuite tu utilises un trigger BEFORE ou AFTER dépend de tes choix applicatifs. (mais dans ton cas, ce serait plutôt un TRIGGER "AFTER", c'est à dire appelé après la mise à jour).
__________________

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


Une réponse vous a aidé ? utiliser le bouton

"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Bluedeep est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 27/10/2011, 21h59   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Citation:
Envoyé par Bluedeep Voir le message
Les triggers Sql Server (qui sont uniquement des triggers "commande" il n'y a pas de trigger "ligne" en SQL SERVER) exposent deux vues (enfin deux pour les trigger UPDATE) qui sont "delete" et "insert".
NON ! deleted et inserted
Citation:

Il suffit de lire la vue "delete" pour obtenir les valeurs "anciennes" et la vue "insert" pour lire les valeurs "nouvelles" (c'est un peu l'équivalent de :old et :new en Oracle, mais qui ne sont dans le cas d'Oracle qu'accessible dans les triggers "ligne").

Il va de soit qu'un trigger "ON INSERT" n'expose que la vue "insert" et un trigger "ON DELETE" n'expose que la vue "delete".

Que ensuite tu utilises un trigger BEFORE ou AFTER dépend de tes choix applicatifs. (mais dans ton cas, ce serait plutôt un TRIGGER "AFTER", c'est à dire appelé après la mise à jour).
NON : il n'y a pas de trigger BEFORE dans SQL Server. Mais des trigger INSTEAD OF et AFTER.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/10/2011, 22h26   #4
Expert Confirmé Sénior
 
Homme François
Chef de projet NTIC
Inscription : janvier 2007
Messages : 5 352
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC

Informations forums :
Inscription : janvier 2007
Messages : 5 352
Points : 9 745
Points : 9 745
Citation:
Envoyé par SQLpro Voir le message
NON ! deleted et inserted
NON : il n'y a pas de trigger BEFORE dans SQL Server. Mais des trigger INSTEAD OF et AFTER.

A +
Décidément, 8 mois sans toucher à SQL SERVER ne me réussissent pas....
__________________

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


Une réponse vous a aidé ? utiliser le bouton

"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Bluedeep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 11h20   #5
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
et puis il va y avoir DENALI !!!!

;-)

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 11h34   #6
Futur Membre du Club
 
Inscription : septembre 2002
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 143
Points : 17
Points : 17
J'ai essayé ça

Code :
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
29
30
31
32
 
ALTER TRIGGER [dbo].[EV_OCI_ARTSTOCK]
        ON  [dbo].[F_ARTSTOCK]
        FOR UPDATE
 AS
 BEGIN
 
declare @ref varchar(50)
DECLARE @old_qte int
DECLARE @oldMontSto money
 
 -- inutile si pas d'update de la colonne visée
 IF NOT UPDATE(AS_QTESTO)
 RETURN
 
 -- stocke les anciennes valeurs
 SELECT @ref = AR_REF 
 FROM INSERTED
 
 SELECT @old_qte = F_ARTSTOCK.AS_QteSto, @oldMontSto = F_ARTSTOCK.AS_MontSto
 FROM F_ARTSTOCK
 WHERE F_ARTSTOCK.AR_REF = @ref
 
 INSERT INTO OCI_MVTSTOCK (AR_REF, Heure, QTE_AV, CMUP_AV, QTE_AP, CMUP_AP) 
 SELECT INSERTED.AR_REF, getdate(), @old_qte, @oldMontSto, INSERTED.AS_QteSto, INSERTED.AS_MontSto
 FROM INSERTED
 
 -- rollback en cas d'erreur
IF @@Error <> 0
ROLLBACK TRANSACTION
 
END
Mais les valeurs AV et AP de la table OCI_MVTSTOCK sont identiques, je ne parviens pas à récupérer les valeurs avant l'update.
__________________
Postes Dév : W7 SP1 / XP SP3 / Windev 17 / Delphi 7 Entreprise
Serveur : W2k3 SP2 + SQL 2008
Connexion : OLE.DB
fredfred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 11h38   #7
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Déjà c'est pas bon, car vous avez des variables, alors qu'un trigger est ensembliste !

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 11h42   #8
Futur Membre du Club
 
Inscription : septembre 2002
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 143
Points : 17
Points : 17
Citation:
Envoyé par SQLpro Voir le message
Déjà c'est pas bon, car vous avez des variables, alors qu'un trigger est ensembliste !

A +
???

Parce que j'ai mis des DEFINE ?
__________________
Postes Dév : W7 SP1 / XP SP3 / Windev 17 / Delphi 7 Entreprise
Serveur : W2k3 SP2 + SQL 2008
Connexion : OLE.DB
fredfred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 11h54   #9
Expert Confirmé Sénior
 
Homme François
Chef de projet NTIC
Inscription : janvier 2007
Messages : 5 352
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Chef de projet NTIC

Informations forums :
Inscription : janvier 2007
Messages : 5 352
Points : 9 745
Points : 9 745
Citation:
Envoyé par fredfred Voir le message
???

Parce que j'ai mis des DEFINE ?
Comme je te l'ai dit supra les trigger SQL sont des trigger COMMANDE !

ce qui signifie que les vue deleted et inserted (merci à SQLPro de m'avoir corrigé) peuvent contenir plusieurs lignes. Or, ici le SELECT .. INTO ne peut en traiter qu'une.

Inserted et deleted ne fonctionne pas comme :old et ;:new de Oracle qui ne contienne qu'une ligne puisque accessible uniquement depuis les trigger "ligne" (concept inexistant en SQL SERVER).

En clair si on fait par exemple :

Code :
UPDATE MyTable SET MyField = newValue WHERE MyKeyNonUnique = MyValue
Le trigger UPDATE de MyTable ne sera appelé qu'une fois quel que soit le nombre de lignes concernées et les vues deleted et inserted vont contenir toutes les lignes concernées.
__________________

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


Une réponse vous a aidé ? utiliser le bouton

"L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel
Bluedeep est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/10/2011, 14h28   #10
Futur Membre du Club
 
Inscription : septembre 2002
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 143
Points : 17
Points : 17
OK, pigé.

Du coup, j'ai réécrit mon trigger ainsi :
Code :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
ALTER TRIGGER [dbo].[EV_OCI_ARTSTOCK]
        ON  [dbo].[F_ARTSTOCK]
        FOR UPDATE
 AS
 BEGIN
 
declare @ref varchar(50)
DECLARE @old_qte int
DECLARE @old_MontSto money
DECLARE @new_qte int
DECLARE @new_MontSto money
 
 	-- inutile si pas d'update de la colonne visée
 	IF NOT UPDATE(AS_QTESTO)
 	RETURN
 
     DECLARE INS_curseur CURSOR FORWARD_ONLY READ_ONLY FOR
     SELECT AR_REF, AS_QteSto, AS_MontSto
     FROM INSERTED
     OPEN INS_curseur
 
     FETCH NEXT FROM INS_curseur
     INTO @ref, @new_qte, @new_MontSto 
 
     -- Check @@FETCH_STATUS to see if there are any more rows to fetch.
     WHILE @@FETCH_STATUS = 0
     BEGIN
 
         -- stocke les anciennes valeurs
         SELECT @old_qte = F_ARTSTOCK.AS_QteSto, @old_MontSto = F_ARTSTOCK.AS_MontSto
         FROM F_ARTSTOCK
         WHERE F_ARTSTOCK.AR_REF = @ref
 
         INSERT INTO OCI_MVTSTOCK (AR_REF, Heure, QTE_AV, CMUP_AV, QTE_AP, CMUP_AP) 
         VALUES (@ref, getdate(), @old_qte, @old_MontSto, @new_qte, @new_MontSto)
 
         -- rollback en cas d'erreur
         IF @@Error <> 0
         ROLLBACK TRANSACTION
 
         FETCH NEXT FROM INS_curseur
         INTO @ref, @new_qte, @new_MontSto 
   END
 
END
Mais je ne parviens toujours pas à récupérer les valeurs avant modif.
__________________
Postes Dév : W7 SP1 / XP SP3 / Windev 17 / Delphi 7 Entreprise
Serveur : W2k3 SP2 + SQL 2008
Connexion : OLE.DB
fredfred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 15h06   #11
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Nombreuses erreurs :
1) pas de close du curseur
2) pas de deallocate du curseur
3) un rollback dans une boucle dans un curseur va se traduire par des effets de bords inattendus...
3) pourquoi passer par un curseur qui est lent alors que vous pouvez faire cela sous forme de requêtes optimisées ?

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 15h15   #12
Futur Membre du Club
 
Inscription : septembre 2002
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 143
Points : 17
Points : 17
Pour l'instant, c'est du test à l'arrache, s'il manque des bouts, ça n'est pas grave. La version finale ne ressemblera probablement pas du tout à ça.
Si un curseur est plus lent, alors soit, j'utiliserai volontier une requête.
Mais tant que je n'aurai pas de solution à mon problème, je ne perdrai pas de temps à blinder le code.
__________________
Postes Dév : W7 SP1 / XP SP3 / Windev 17 / Delphi 7 Entreprise
Serveur : W2k3 SP2 + SQL 2008
Connexion : OLE.DB
fredfred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 15h56   #13
Futur Membre du Club
 
Inscription : septembre 2002
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 143
Points : 17
Points : 17
ah, je viens juste de capter que les anciennes valeurs étaient stockées dans la vue DELETED.
Du coup, ça à l'air de fonctionner selon mes besoins.
__________________
Postes Dév : W7 SP1 / XP SP3 / Windev 17 / Delphi 7 Entreprise
Serveur : W2k3 SP2 + SQL 2008
Connexion : OLE.DB
fredfred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 15h59   #14
Futur Membre du Club
 
Inscription : septembre 2002
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 143
Points : 17
Points : 17
est-il possible qu'un même enregistrement se retrouve plusieurs fois dans DELETED / INSERTED, s'il a été modifié par plusieurs utilisateurs en même temps, ou qu'une même transaction le modifie plusieurs fois ?
__________________
Postes Dév : W7 SP1 / XP SP3 / Windev 17 / Delphi 7 Entreprise
Serveur : W2k3 SP2 + SQL 2008
Connexion : OLE.DB
fredfred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 15h44   #15
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Bonjour,

Citation:
Pour l'instant, c'est du test à l'arrache, s'il manque des bouts, ça n'est pas grave. La version finale ne ressemblera probablement pas du tout à ça.
Si un curseur est plus lent, alors soit, j'utiliserai volontier une requête.
Mais tant que je n'aurai pas de solution à mon problème, je ne perdrai pas de temps à blinder le code.
Pourquoi ne pas le faire d'entrée ??? c'est justement une perte de temps, il va vous falloir revenir dessus, ce que comme tout le monde vous ne ferez pas.

Citation:
est-il possible qu'un même enregistrement se retrouve plusieurs fois dans DELETED / INSERTED, s'il a été modifié par plusieurs utilisateurs en même temps, ou qu'une même transaction le modifie plusieurs fois ?
Non, car la portée de telles vues est celle de la session.

Au passage le type money est plus connu pour produire des erreurs de calculs que pour autre chose.
Il vaut mieux utiliser le type decimal.

Code :
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
29
30
ALTER TRIGGER [dbo].[EV_OCI_ARTSTOCK]
        ON  [dbo].[F_ARTSTOCK]
        FOR UPDATE
AS
BEGIN
	SET NOCOUNT ON
 
 	-- inutile si pas d'update de la colonne visée
 	IF NOT UPDATE(AS_QTESTO)
 		RETURN
 
	INSERT INTO dbo.OCI_MVTSTOCK
	(
		AR_REF
		, Heure
		, QTE_AV
		, CMUP_AV
		, QTE_AP
		, CMUP_AP
	)
	SELECT		I.AR_REF
			, GETDATE()
			, D.AS_QteSto
			, D.AS_MontSto
			, I.AS_QteSto
			, I.AS_MontSto
	FROM		inserted AS I
	INNER JOIN	deleted AS D
				ON I.AR_REF = D.AR_REF 
END
Voilà, en une seule instruction ...
Voyez ce que vous avez fait avec votre curseur : il n'y a rien de plus crade qu'un curseur en bases de données relationnelles SQL.
J'ai également publié un article sur l'écriture ensembliste de triggers, que l'on trouve très simplement avec un moteur de recherche très connu.

Tout en SQL est ensembliste parce que ce langage est conçu pour cela.
Si vous faites du ligne à ligne (RBAR dans la littérature), ne vous attendez pas à des performances au moins correctes.

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 02/11/2011, 11h53   #16
Futur Membre du Club
 
Inscription : septembre 2002
Messages : 143
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 143
Points : 17
Points : 17
Citation:
Envoyé par elsuket Voir le message
Bonjour,
Pourquoi ne pas le faire d'entrée ??? c'est justement une perte de temps, il va vous falloir revenir dessus, ce que comme tout le monde vous ne ferez pas.
Et j'ai arreté de lire là !

On se connait ? on a déjà bossé ensemble ?
Me faire traiter de feignasse par un inconnu qui à la grosse tête quand je demande un peu d'aide, ça va 5 minutes.
OSEF, mon code est terminé depuis vendredi soir.
__________________
Postes Dév : W7 SP1 / XP SP3 / Windev 17 / Delphi 7 Entreprise
Serveur : W2k3 SP2 + SQL 2008
Connexion : OLE.DB
fredfred est déconnecté   Envoyer un message privé Réponse avec citation 03
Vieux 02/11/2011, 15h04   #17
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Citation:
Et j'ai arreté de lire là !
Tanpis pour vous
Je n'ai jamais bossé avec qui que ce soit sur ce forum

Dire que j'ai la grosse tête c'est vraiment mal me connaître, ce qui justifie qu'effectivement nous n'avons pas travaillé ensemble.
Si j'arrivais pas à passer les portes ou que j'aie les chevilles qui se touchent, expliquez-moi pourquoi j'ai pris la peine de vous donner le code du trigger.

Si vous avez envie de mal faire les choses, ça vous regarde.
Mais avec un aussi mauvais à priori, je suis finalement content de ne pas avoir à travailler avec vous.

Citation:
OSEF, mon code est terminé depuis vendredi soir.
Impressionnant !

Allez bon boulot

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 04/11/2011, 07h53   #18
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
on a déjà bossé ensemble ?
Honnêtement à vous lire et vu votre réaction çà ne donne pas envie... des développeurs avec votre raisonnement couplé d'un 'je vous emmerde' j'en croise plein dans ma boite... qu'il faut que je sauve le jour ou on arrive en prod et que leur 'truc à l'arrache mais je sais faire mieux...' amène des temps de réponses digne d'une page de CDISCOUNT...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 40
Vieux 05/11/2011, 02h12   #19
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Citation:
Honnêtement à vous lire et vu votre réaction çà ne donne pas envie... des développeurs avec votre raisonnement couplé d'un 'je vous emmerde' j'en croise plein dans ma boite... qu'il faut que je sauve le jour ou on arrive en prod et que leur 'truc à l'arrache mais je sais faire mieux...' amène des temps de réponses digne d'une page de CDISCOUNT...
Soit on a bossé dans la même boîte ... soit ... non ... NON ... y'en a partout des comme ça ?
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 20
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h48.


 
 
 
 
Partenaires

Hébergement Web