Bonjour
Je voudrai à partir d'un trigger, calculer la valeur d'un champ, le remplir
avant de mettre à jour puis de retourner la valeur calculée. Je signale que
plusieurs personnes peuvent mettre à jour la table simultanément.
Merci de votre aide
--
======================
Mod
http://modiop.ifrance.com
======================
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
1) les trigger de SQL Server ne peuvent pas se déclencher AVANT 2) un trigger n'est pas destiné à renvoyer une valeur 3) un SGBDR est spécialement conçu pour gérer de manière transparente les problèmes de concurrences
enfin, plutot que de mettre Urgence dans ton titre, poste nous tes tables, sous forme d'ordre SQL et le résultat que tu veut obtenir...
A +
MOD a écrit:
Bonjour Je voudrai à partir d'un trigger, calculer la valeur d'un champ, le remplir avant de mettre à jour puis de retourner la valeur calculée. Je signale que plusieurs personnes peuvent mettre à jour la table simultanément.
Merci de votre aide
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
1) les trigger de SQL Server ne peuvent pas se déclencher AVANT
2) un trigger n'est pas destiné à renvoyer une valeur
3) un SGBDR est spécialement conçu pour gérer de manière transparente les
problèmes de concurrences
enfin, plutot que de mettre Urgence dans ton titre, poste nous tes tables, sous
forme d'ordre SQL et le résultat que tu veut obtenir...
A +
MOD a écrit:
Bonjour
Je voudrai à partir d'un trigger, calculer la valeur d'un champ, le remplir
avant de mettre à jour puis de retourner la valeur calculée. Je signale que
plusieurs personnes peuvent mettre à jour la table simultanément.
Merci de votre aide
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
1) les trigger de SQL Server ne peuvent pas se déclencher AVANT 2) un trigger n'est pas destiné à renvoyer une valeur 3) un SGBDR est spécialement conçu pour gérer de manière transparente les problèmes de concurrences
enfin, plutot que de mettre Urgence dans ton titre, poste nous tes tables, sous forme d'ordre SQL et le résultat que tu veut obtenir...
A +
MOD a écrit:
Bonjour Je voudrai à partir d'un trigger, calculer la valeur d'un champ, le remplir avant de mettre à jour puis de retourner la valeur calculée. Je signale que plusieurs personnes peuvent mettre à jour la table simultanément.
Merci de votre aide
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
MOD
Rebonjour Voila! J'ai une table TableA qui contient des champs suivant TableID (compteur auto), NUM_DEC (qui est un compteur mais qui doit se réinitialiser à chaque changement d'année) et d'autres champs sans importance pour mon pb Je veux incrémenter le compteur de NUM_DEC manuellement en tenant compte du changement d'année. Chaque insertion, je dois retourner la valeur de NUM_DEC à celui qui fait l'insertion. Voila!
Merci de vos idées
"Fred BROUARD" a écrit dans le message de news:
1) les trigger de SQL Server ne peuvent pas se déclencher AVANT 2) un trigger n'est pas destiné à renvoyer une valeur 3) un SGBDR est spécialement conçu pour gérer de manière transparente les problèmes de concurrences
enfin, plutot que de mettre Urgence dans ton titre, poste nous tes tables,
sous
forme d'ordre SQL et le résultat que tu veut obtenir...
A +
MOD a écrit: > Bonjour > Je voudrai à partir d'un trigger, calculer la valeur d'un champ, le
remplir
> avant de mettre à jour puis de retourner la valeur calculée. Je signale
que
> plusieurs personnes peuvent mettre à jour la table simultanément. > > Merci de votre aide
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Rebonjour
Voila! J'ai une table TableA qui contient des champs suivant TableID
(compteur auto), NUM_DEC (qui est un compteur mais qui doit se réinitialiser
à chaque changement d'année) et d'autres champs sans importance pour mon pb
Je veux incrémenter le compteur de NUM_DEC manuellement en tenant compte du
changement d'année. Chaque insertion, je dois retourner la valeur de NUM_DEC
à celui qui fait l'insertion.
Voila!
Merci de vos idées
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de
news:4111E479.7020301@club-internet.fr...
1) les trigger de SQL Server ne peuvent pas se déclencher AVANT
2) un trigger n'est pas destiné à renvoyer une valeur
3) un SGBDR est spécialement conçu pour gérer de manière transparente les
problèmes de concurrences
enfin, plutot que de mettre Urgence dans ton titre, poste nous tes tables,
sous
forme d'ordre SQL et le résultat que tu veut obtenir...
A +
MOD a écrit:
> Bonjour
> Je voudrai à partir d'un trigger, calculer la valeur d'un champ, le
remplir
> avant de mettre à jour puis de retourner la valeur calculée. Je signale
que
> plusieurs personnes peuvent mettre à jour la table simultanément.
>
> Merci de votre aide
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Rebonjour Voila! J'ai une table TableA qui contient des champs suivant TableID (compteur auto), NUM_DEC (qui est un compteur mais qui doit se réinitialiser à chaque changement d'année) et d'autres champs sans importance pour mon pb Je veux incrémenter le compteur de NUM_DEC manuellement en tenant compte du changement d'année. Chaque insertion, je dois retourner la valeur de NUM_DEC à celui qui fait l'insertion. Voila!
Merci de vos idées
"Fred BROUARD" a écrit dans le message de news:
1) les trigger de SQL Server ne peuvent pas se déclencher AVANT 2) un trigger n'est pas destiné à renvoyer une valeur 3) un SGBDR est spécialement conçu pour gérer de manière transparente les problèmes de concurrences
enfin, plutot que de mettre Urgence dans ton titre, poste nous tes tables,
sous
forme d'ordre SQL et le résultat que tu veut obtenir...
A +
MOD a écrit: > Bonjour > Je voudrai à partir d'un trigger, calculer la valeur d'un champ, le
remplir
> avant de mettre à jour puis de retourner la valeur calculée. Je signale
que
> plusieurs personnes peuvent mettre à jour la table simultanément. > > Merci de votre aide
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
MOD
Finalement j'ai régler mon problème de ce manière, j'attends vos critiques pour l'améliorant. J'ai crée un champ ANNEE qui est toujours égal à la valeur de l'année en cours (YEAR(GETDATE()) puis j'ai crée ce trigger:
CREATE TRIGGER VALEUR_NUMDECL ON dbo.DECLARATIONS FOR INSERT AS BEGIN DECLARE @NEWVAL int DECLARE @DEC_ID int DECLARE @DATEPASSEE datetime
Set @NEWVAL = (select MAX(NUM_DEC) FROM DECLARATIONS WHERE ANNEE (SELECT MAX(ANNEE) FROM DECLARATIONS) )
Set @DatePassee = (Select DATE_DEC FROM DECLARATIONS WHERE NUM_DEC=@NEWVAL)
if Year(GetDate()) <> Year(@DatePassee) Set @NewVal = 1 If @NewVAL is null Set @NewVal = 1 Else Set @NewVal = @NewVal + 1 Set @dec_id = (select DEC_ID from inserted) UPDATE DECLARATIONS SET NUM_DEC = @NewVal WHERE DEC_ID = @Dec_ID SELECT @NewVal AS NEWVAL, @Dec_Id as DEC_ID END
Ca marche pour le moment, mais peut être qu'on peut l'amélioré.
Merci d'avance
"MOD" a écrit dans le message de news:
Bonjour Je voudrai à partir d'un trigger, calculer la valeur d'un champ, le
remplir
avant de mettre à jour puis de retourner la valeur calculée. Je signale
que
plusieurs personnes peuvent mettre à jour la table simultanément.
Merci de votre aide --
===================== > Mod http://modiop.ifrance.com ===================== >
Finalement j'ai régler mon problème de ce manière, j'attends vos critiques
pour l'améliorant.
J'ai crée un champ ANNEE qui est toujours égal à la valeur de l'année en
cours (YEAR(GETDATE())
puis j'ai crée ce trigger:
CREATE TRIGGER VALEUR_NUMDECL ON dbo.DECLARATIONS
FOR INSERT
AS
BEGIN
DECLARE @NEWVAL int
DECLARE @DEC_ID int
DECLARE @DATEPASSEE datetime
Set @NEWVAL = (select MAX(NUM_DEC) FROM DECLARATIONS WHERE ANNEE (SELECT MAX(ANNEE) FROM DECLARATIONS) )
Set @DatePassee = (Select DATE_DEC FROM DECLARATIONS WHERE
NUM_DEC=@NEWVAL)
if Year(GetDate()) <> Year(@DatePassee) Set @NewVal = 1
If @NewVAL is null
Set @NewVal = 1
Else
Set @NewVal = @NewVal + 1
Set @dec_id = (select DEC_ID from inserted)
UPDATE DECLARATIONS SET NUM_DEC = @NewVal WHERE DEC_ID = @Dec_ID
SELECT @NewVal AS NEWVAL, @Dec_Id as DEC_ID
END
Ca marche pour le moment, mais peut être qu'on peut l'amélioré.
Merci d'avance
"MOD" <modiop_m_exclure@hotmail.com> a écrit dans le message de
news:uwZ81XieEHA.2908@TK2MSFTNGP10.phx.gbl...
Bonjour
Je voudrai à partir d'un trigger, calculer la valeur d'un champ, le
remplir
avant de mettre à jour puis de retourner la valeur calculée. Je signale
que
plusieurs personnes peuvent mettre à jour la table simultanément.
Merci de votre aide
--
===================== > Mod
http://modiop.ifrance.com
===================== >
Finalement j'ai régler mon problème de ce manière, j'attends vos critiques pour l'améliorant. J'ai crée un champ ANNEE qui est toujours égal à la valeur de l'année en cours (YEAR(GETDATE()) puis j'ai crée ce trigger:
CREATE TRIGGER VALEUR_NUMDECL ON dbo.DECLARATIONS FOR INSERT AS BEGIN DECLARE @NEWVAL int DECLARE @DEC_ID int DECLARE @DATEPASSEE datetime
Set @NEWVAL = (select MAX(NUM_DEC) FROM DECLARATIONS WHERE ANNEE (SELECT MAX(ANNEE) FROM DECLARATIONS) )
Set @DatePassee = (Select DATE_DEC FROM DECLARATIONS WHERE NUM_DEC=@NEWVAL)
if Year(GetDate()) <> Year(@DatePassee) Set @NewVal = 1 If @NewVAL is null Set @NewVal = 1 Else Set @NewVal = @NewVal + 1 Set @dec_id = (select DEC_ID from inserted) UPDATE DECLARATIONS SET NUM_DEC = @NewVal WHERE DEC_ID = @Dec_ID SELECT @NewVal AS NEWVAL, @Dec_Id as DEC_ID END
Ca marche pour le moment, mais peut être qu'on peut l'amélioré.
Merci d'avance
"MOD" a écrit dans le message de news:
Bonjour Je voudrai à partir d'un trigger, calculer la valeur d'un champ, le
remplir
avant de mettre à jour puis de retourner la valeur calculée. Je signale
que
plusieurs personnes peuvent mettre à jour la table simultanément.
Merci de votre aide --
===================== > Mod http://modiop.ifrance.com ===================== >