Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
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 03/03/2011, 21h13   #1
Membre Expert
 
Inscription : octobre 2007
Messages : 3 937
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 937
Points : 1 905
Points : 1 905
Par défaut Creation et modification d'un Trigger

Bonjour

Es-il possible avec Management Studio de verifier les Trigger existant sur une DB ?

Pour fairre un petit test de creation d'un trigger elementaire
J'ai écrit ceci

Code :
1
2
3
4
5
6
7
8
CREATE TRIGGER tg_DoTotal
ON Clark.dbo.BakMove
AFTER INSERT
AS
IF @@ROWCOUNT >1
	BEGIN	
		PRINT 'Test Trigger'
	END
La commande s'execute parfaitement, je peux apres faire un ALTER mais je ne vois pas ou ce trigger a été sauvé ??

Accessoirement le but est d'activer le triger ssi le record inséré contient une valleur déterminante.
Est-ce possible ?
Si oui comment faire

Merci de votre patience !
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 21h25   #2
Membre Expert
 
Inscription : octobre 2007
Messages : 3 937
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 937
Points : 1 905
Points : 1 905
Ok !

J'ai trouvé le trigger est attaché a la table !
Maintenant la deuxieme question

Comment tester les valeurs d'un record inséré pour déclencher le trigger ?

J'essaye de faire un truc comme ceci : tarra et bruto etant les valeurs a tester à l'insertion d'un record bakmove

Est-ce possible ?


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
USE [Clark]
GO
/****** Object:  Trigger [dbo].[tg_DoTotal]    Script Date: 03/03/2011 21:18:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[tg_DoTotal]
ON [Clark].[dbo].[BakMove]
AFTER INSERT
AS
IF BakMove.Tarra <1 AND BakMove.Bruto<1
	BEGIN	
		PRINT 'Test Trigger'
	END
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/03/2011, 21h30   #3
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Une recherche aurait pu t'amener ici :
http://msdn.microsoft.com/en-us/library/ms189799.aspx

Pour ton problème précis :
http://msdn.microsoft.com/en-us/library/ms191300.aspx

Le sujet a également été traité dans le forum auparavant.
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 21h56   #4
Membre Expert
 
Inscription : octobre 2007
Messages : 3 937
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 937
Points : 1 905
Points : 1 905
Citation:
Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
Une recherche aurait pu t'amener ici :
http://msdn.microsoft.com/en-us/library/ms189799.aspx

Pour ton problème précis :
http://msdn.microsoft.com/en-us/library/ms191300.aspx

Le sujet a également été traité dans le forum auparavant.
Il est toujours tres pertinent et prudent de repondre a une question précise par le renvoi a la case bibilotheque !

Le meilleurs apprentissage passe souvent par l'illustration simple de cas concret
Et quand mes stagiaires me posent des questions dans mon domaine de compétence j'ai toujours la patience de leur répondre car je sais que je peux en quelques minutes les aider a leur faire gagner des heures de tatonement souvent inutiles et que le simple fait d'exprimer une connaissance acquise m'aidera moi aussi à mieux l'intégrer.

Donc en résumé je n'ai rien appris de ta réponse car je connaissais les page de doc que tu mentionne mais elles ne m'on pas encore permis de trouver la bonne maniere de faire.
Je continue donc en essai erreur, à moins que quelqu'un interviennent en comprenant que ce qui est le plus intéressant dans un forum ce n'est pas l'étalage des références encyclopédique mais l'expérience personelle que l'on peut transmettre

Merci
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 11h41   #5
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 667
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 667
Points : 8 715
Points : 8 715
Bonjour,

Essaies ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ALTER TRIGGER dbo.tg_DoTotal
	ON Clark.dbo.BakMove
AFTER INSERT
AS
BEGIN
	SET NOCOUNT ON
 
	IF EXISTS
	(
		SELECT	*
		FROM	inserted
		WHERE	Tarra < 1
		AND	Bruto < 1
	)
	BEGIN
		PRINT 'test trigger'
 
		-- traitement
	END
END
@++
__________________
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 10
Vieux 04/03/2011, 15h26   #6
Membre Expert
 
Inscription : octobre 2007
Messages : 3 937
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 937
Points : 1 905
Points : 1 905
Yesss !

Mention Speciale de compétence et de convivialité pour Elsuket !
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 15h41   #7
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Citation:
Envoyé par olibara Voir le message
Il est toujours tres pertinent et prudent de repondre a une question précise par le renvoi a la case bibilotheque !
Le meilleurs apprentissage passe souvent par l'illustration simple de cas concret
Et quand mes stagiaires me posent des questions dans mon domaine de compétence j'ai toujours la patience de leur répondre car je sais que je peux en quelques minutes les aider a leur faire gagner des heures de tatonement souvent inutiles et que le simple fait d'exprimer une connaissance acquise m'aidera moi aussi à mieux l'intégrer.
Donc en résumé je n'ai rien appris de ta réponse car je connaissais les page de doc que tu mentionne mais elles ne m'on pas encore permis de trouver la bonne maniere de faire.
Je continue donc en essai erreur, à moins que quelqu'un interviennent en comprenant que ce qui est le plus intéressant dans un forum ce n'est pas l'étalage des références encyclopédique mais l'expérience personelle que l'on peut transmettre
De part mon cursus et mes activités, j'ai bien souvent été amené à chercher et trouver les réponses par moi-même et à passer le temps à faire mes erreurs et à passer du temps à tâtonner, ce qui est souvent plus formateur que d'avoir la réponse sous son nez.
Pour ce qui est de la documentation MSDN, elle est tout de même fort didactique avec des exemples (parfois incorrect, ok) et mérite que l'on prenne le courage de s'y attarder... Et je vais piocher dedans quasiment quotidiennement...
Désolé si ma manière brute ne te convient pas.
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h40.


 
 
 
 
Partenaires

Hébergement Web