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

MS SQL Server Discussion :

Connaitre la dernière date de modification d'un enregistrement


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Points : 23
    Points
    23
    Par défaut Connaitre la dernière date de modification d'un enregistrement
    Bonjour,

    Y a-t-il un moyen d'avoir une colonne dans une table dans laquelle on pourrait récupérer la date de modification de l'enregistrement ?
    Sans avoir à passer par un trigger.
    A la place du type binaire d'un timestamp je souhaiterais un type datetime.

    Merci

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Excusez moi.
    SQL Server 2008 R2

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    par défaut, non. Il faut créer une colonne de type DATETIME2 dans chacune de vos tables et un déclencheur qui va mettre à jour cette information.

    Pour la première phase, faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *, 'ALTER TABLE [' + TABLE_SCHEMA + '].[' + TABLE_NAME + '] ADD _DHU DATETIME2;'
    FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';
    Pour la second c'est un peu plus compliqué... mais faisable par une requête avec l'aide d'une UDF.

    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/ * * * * *

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Points : 23
    Points
    23
    Par défaut
    Merci,
    C'est quand même un peu étrange qu'il n'y ait pas de colonne de type timestamp comme dans MySql qui soit un vrai horodatage.
    Je vais donc mettre des triggers.
    Bonne soirée

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    MySQL je l'appelle MySQL merde; Il y a plein de chose débiles dans ce SGBDR. Et la façon d'horodater les lignes (et non les enregistrement.... à lire : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L2) en est une particulièrement gratinée... En effet cela pèse sur les performances, et les performances de MySQmerde c'est déjà catastrophique... à lire : http://blog.developpez.com/sqlpro/p9...alles_en_sql_1). De plus pour un site international il faudrait mettre une date heure de type UTC (temps universel). Enfin, l'usage essentiel de ce type de données est fait pour des besoins de verrouillage optimiste par estampillage, et là encore MySQL est mauvais, car cet outil peut générer des doublons... À lire : http://www.info.univ-angers.fr/~gh/internet/cbd.pdf page 163).

    De toute façon, MySQL n'est pas un SGBDR relationnel, il échoue à sa conformité suer au moins 3 des règles de Codd, inventeur des SGBD Relationnels : http://blog.developpez.com/sqlpro/p1...bd_relationn_1

    A lire sur ce pseudo SGBD non relationnel :
    http://blog.developpez.com/sqlpro/p9...oudre_aux_yeux

    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. Récupérer dernière date de modification fichier win32
    Par crazydindon dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2010, 12h17
  2. Réponses: 2
    Dernier message: 06/06/2009, 13h42
  3. Dernière date de modification d'une fonction
    Par haykelFST dans le forum Développement
    Réponses: 1
    Dernier message: 26/11/2008, 20h57
  4. Réponses: 5
    Dernier message: 04/12/2007, 08h07
  5. Réponses: 17
    Dernier message: 18/07/2007, 15h46

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