Colonne de type bit se modifiant automatiquement si changement dans la ligne
4 réponses
Alexandra Bishop
Bonjour,
j'aimerai creer dans une table une colonne (bit) qui change si une des
colonnes de la lignes a ete modifiee.
J'ai pense a mettre une formule dans entreprise manager, mais je n'ai pas
trouver d'evenement du style OnModification ou OnChange .
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
Les événements n'existe pas dans un SGBDR car il n'existe pas d'interactivité au niveau IHM.
En revanche il existe la notion de "déclencheur" qui permet d'exécuter du code lors de la survenance de certains ordres SQL comme INSERT UPDATE ou DELETE.
Exemple :
CREATE TRIGGER TRG_MODIF ON MaTable FOR UPDATE AS
UPDATE MaTable SET MaColonne = 1 FROM MaTable T INNER JOIN UPDATED U ON T.LaClef = U.LaClef
A +
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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 ****************** mailto: ******************
Alexandra Bishop a écrit:
Bonjour, j'aimerai creer dans une table une colonne (bit) qui change si une des colonnes de la lignes a ete modifiee. J'ai pense a mettre une formule dans entreprise manager, mais je n'ai pas trouver d'evenement du style OnModification ou OnChange .
Auriez vous une idee ?
Cordialement.
Les événements n'existe pas dans un SGBDR car il n'existe pas
d'interactivité au niveau IHM.
En revanche il existe la notion de "déclencheur" qui permet d'exécuter
du code lors de la survenance de certains ordres SQL comme INSERT UPDATE
ou DELETE.
Exemple :
CREATE TRIGGER TRG_MODIF ON MaTable
FOR UPDATE
AS
UPDATE MaTable
SET MaColonne = 1
FROM MaTable T
INNER JOIN UPDATED U
ON T.LaClef = U.LaClef
A +
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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
****************** mailto:brouardf@club-internet.fr ******************
Alexandra Bishop a écrit:
Bonjour,
j'aimerai creer dans une table une colonne (bit) qui change si une des
colonnes de la lignes a ete modifiee.
J'ai pense a mettre une formule dans entreprise manager, mais je n'ai pas
trouver d'evenement du style OnModification ou OnChange .
Les événements n'existe pas dans un SGBDR car il n'existe pas d'interactivité au niveau IHM.
En revanche il existe la notion de "déclencheur" qui permet d'exécuter du code lors de la survenance de certains ordres SQL comme INSERT UPDATE ou DELETE.
Exemple :
CREATE TRIGGER TRG_MODIF ON MaTable FOR UPDATE AS
UPDATE MaTable SET MaColonne = 1 FROM MaTable T INNER JOIN UPDATED U ON T.LaClef = U.LaClef
A +
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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 ****************** mailto: ******************
Alexandra Bishop a écrit:
Bonjour, j'aimerai creer dans une table une colonne (bit) qui change si une des colonnes de la lignes a ete modifiee. J'ai pense a mettre une formule dans entreprise manager, mais je n'ai pas trouver d'evenement du style OnModification ou OnChange .
Auriez vous une idee ?
Cordialement.
Patrice Scribe
Pour SQL Serveur tu peux aussi mettre une colonne timestamp qui est automatiquement modifiée lors d'un update (ce qui permet d'avoir la "version")
--
"Alexandra Bishop" a écrit dans le message de news:%
Bonjour, j'aimerai creer dans une table une colonne (bit) qui change si une des colonnes de la lignes a ete modifiee. J'ai pense a mettre une formule dans entreprise manager, mais je n'ai pas trouver d'evenement du style OnModification ou OnChange .
Auriez vous une idee ?
Cordialement.
Pour SQL Serveur tu peux aussi mettre une colonne timestamp qui est
automatiquement modifiée lors d'un update (ce qui permet d'avoir la
"version")
--
"Alexandra Bishop" <boccara@012.net.il> a écrit dans le message de
news:%23Okcp2QuDHA.3196@TK2MSFTNGP11.phx.gbl...
Bonjour,
j'aimerai creer dans une table une colonne (bit) qui change si une des
colonnes de la lignes a ete modifiee.
J'ai pense a mettre une formule dans entreprise manager, mais je n'ai pas
trouver d'evenement du style OnModification ou OnChange .
Pour SQL Serveur tu peux aussi mettre une colonne timestamp qui est automatiquement modifiée lors d'un update (ce qui permet d'avoir la "version")
--
"Alexandra Bishop" a écrit dans le message de news:%
Bonjour, j'aimerai creer dans une table une colonne (bit) qui change si une des colonnes de la lignes a ete modifiee. J'ai pense a mettre une formule dans entreprise manager, mais je n'ai pas trouver d'evenement du style OnModification ou OnChange .
Auriez vous une idee ?
Cordialement.
bruno reiter [MVP]
pour inverser ta valeur de bit dans le trigger, tu peux utiliser SET ColBit ABS(ColBit - 1)
br
"Fred BROUARD" wrote in message news:
Les événements n'existe pas dans un SGBDR car il n'existe pas d'interactivité au niveau IHM.
En revanche il existe la notion de "déclencheur" qui permet d'exécuter du code lors de la survenance de certains ordres SQL comme INSERT UPDATE ou DELETE.
Exemple :
CREATE TRIGGER TRG_MODIF ON MaTable FOR UPDATE AS
UPDATE MaTable SET MaColonne = 1 FROM MaTable T INNER JOIN UPDATED U ON T.LaClef = U.LaClef
A +
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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 ****************** mailto: ******************
Alexandra Bishop a écrit: > Bonjour, > j'aimerai creer dans une table une colonne (bit) qui change si une des > colonnes de la lignes a ete modifiee. > J'ai pense a mettre une formule dans entreprise manager, mais je n'ai pas > trouver d'evenement du style OnModification ou OnChange . > > Auriez vous une idee ? > > Cordialement. > >
pour inverser ta valeur de bit dans le trigger, tu peux utiliser SET ColBit ABS(ColBit - 1)
br
"Fred BROUARD" <brouardf@club-internet.fr> wrote in message
news:3FCD0A73.9000909@club-internet.fr...
Les événements n'existe pas dans un SGBDR car il n'existe pas
d'interactivité au niveau IHM.
En revanche il existe la notion de "déclencheur" qui permet d'exécuter
du code lors de la survenance de certains ordres SQL comme INSERT UPDATE
ou DELETE.
Exemple :
CREATE TRIGGER TRG_MODIF ON MaTable
FOR UPDATE
AS
UPDATE MaTable
SET MaColonne = 1
FROM MaTable T
INNER JOIN UPDATED U
ON T.LaClef = U.LaClef
A +
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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
****************** mailto:brouardf@club-internet.fr ******************
Alexandra Bishop a écrit:
> Bonjour,
> j'aimerai creer dans une table une colonne (bit) qui change si une des
> colonnes de la lignes a ete modifiee.
> J'ai pense a mettre une formule dans entreprise manager, mais je n'ai pas
> trouver d'evenement du style OnModification ou OnChange .
>
> Auriez vous une idee ?
>
> Cordialement.
>
>
pour inverser ta valeur de bit dans le trigger, tu peux utiliser SET ColBit ABS(ColBit - 1)
br
"Fred BROUARD" wrote in message news:
Les événements n'existe pas dans un SGBDR car il n'existe pas d'interactivité au niveau IHM.
En revanche il existe la notion de "déclencheur" qui permet d'exécuter du code lors de la survenance de certains ordres SQL comme INSERT UPDATE ou DELETE.
Exemple :
CREATE TRIGGER TRG_MODIF ON MaTable FOR UPDATE AS
UPDATE MaTable SET MaColonne = 1 FROM MaTable T INNER JOIN UPDATED U ON T.LaClef = U.LaClef
A +
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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 ****************** mailto: ******************
Alexandra Bishop a écrit: > Bonjour, > j'aimerai creer dans une table une colonne (bit) qui change si une des > colonnes de la lignes a ete modifiee. > J'ai pense a mettre une formule dans entreprise manager, mais je n'ai pas > trouver d'evenement du style OnModification ou OnChange . > > Auriez vous une idee ? > > Cordialement. > >
Nicolas LETULLIER
En plus de cela, dans ton trigger, tu peux savoir si une colonne spécifique a réellement été mise à jour grace à la fonction COLUMNS_UPDATED, qui est une suite de bits dont chacun représente une colonne de la table, le bit étant à 1 si la colonne a été modifiée.
Nicolas.
"Fred BROUARD" a écrit dans le message de news:
Les événements n'existe pas dans un SGBDR car il n'existe pas d'interactivité au niveau IHM.
En revanche il existe la notion de "déclencheur" qui permet d'exécuter du code lors de la survenance de certains ordres SQL comme INSERT UPDATE ou DELETE.
Exemple :
CREATE TRIGGER TRG_MODIF ON MaTable FOR UPDATE AS
UPDATE MaTable SET MaColonne = 1 FROM MaTable T INNER JOIN UPDATED U ON T.LaClef = U.LaClef
A +
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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 ****************** mailto: ******************
Alexandra Bishop a écrit: > Bonjour, > j'aimerai creer dans une table une colonne (bit) qui change si une des > colonnes de la lignes a ete modifiee. > J'ai pense a mettre une formule dans entreprise manager, mais je n'ai
pas
> trouver d'evenement du style OnModification ou OnChange . > > Auriez vous une idee ? > > Cordialement. > >
En plus de cela, dans ton trigger, tu peux savoir si une colonne spécifique
a réellement été mise à jour grace à la fonction COLUMNS_UPDATED, qui est
une suite de bits dont chacun représente une colonne de la table, le bit
étant à 1 si la colonne a été modifiée.
Nicolas.
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de
news:3FCD0A73.9000909@club-internet.fr...
Les événements n'existe pas dans un SGBDR car il n'existe pas
d'interactivité au niveau IHM.
En revanche il existe la notion de "déclencheur" qui permet d'exécuter
du code lors de la survenance de certains ordres SQL comme INSERT UPDATE
ou DELETE.
Exemple :
CREATE TRIGGER TRG_MODIF ON MaTable
FOR UPDATE
AS
UPDATE MaTable
SET MaColonne = 1
FROM MaTable T
INNER JOIN UPDATED U
ON T.LaClef = U.LaClef
A +
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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
****************** mailto:brouardf@club-internet.fr ******************
Alexandra Bishop a écrit:
> Bonjour,
> j'aimerai creer dans une table une colonne (bit) qui change si une des
> colonnes de la lignes a ete modifiee.
> J'ai pense a mettre une formule dans entreprise manager, mais je n'ai
pas
> trouver d'evenement du style OnModification ou OnChange .
>
> Auriez vous une idee ?
>
> Cordialement.
>
>
En plus de cela, dans ton trigger, tu peux savoir si une colonne spécifique a réellement été mise à jour grace à la fonction COLUMNS_UPDATED, qui est une suite de bits dont chacun représente une colonne de la table, le bit étant à 1 si la colonne a été modifiée.
Nicolas.
"Fred BROUARD" a écrit dans le message de news:
Les événements n'existe pas dans un SGBDR car il n'existe pas d'interactivité au niveau IHM.
En revanche il existe la notion de "déclencheur" qui permet d'exécuter du code lors de la survenance de certains ordres SQL comme INSERT UPDATE ou DELETE.
Exemple :
CREATE TRIGGER TRG_MODIF ON MaTable FOR UPDATE AS
UPDATE MaTable SET MaColonne = 1 FROM MaTable T INNER JOIN UPDATED U ON T.LaClef = U.LaClef
A +
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / 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 ****************** mailto: ******************
Alexandra Bishop a écrit: > Bonjour, > j'aimerai creer dans une table une colonne (bit) qui change si une des > colonnes de la lignes a ete modifiee. > J'ai pense a mettre une formule dans entreprise manager, mais je n'ai
pas
> trouver d'evenement du style OnModification ou OnChange . > > Auriez vous une idee ? > > Cordialement. > >