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

Administration SQL Server Discussion :

Change Data Capture sur BDD


Sujet :

Administration SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 49
    Points
    49
    Par défaut Change Data Capture sur BDD
    Bonjour,

    J'aimerais utiliser le Change Data Capture pour identifier les changements au niveau d'une base de données oú des tables sont créer dynamiquement.
    Ma question: est ce que c'est possible d'utiliser le CDC sur toute la BDD? car tous les exemples que je trouve, c'est des CDC sur des tables uniquement.

    Merci

  2. #2
    Membre averti
    Avatar de taibag
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 214
    Points : 357
    Points
    357
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    CDC doit d'abord être activée au niveau de la base de données et c'est une caractéristique niveau table, cela doit alors être activée pour toutes les tables , vous pouvez exécuter la requête suivante et vérifier si elle est activée pour toute les bases de données:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    USE master 
    GO 
    SELECT [name], database_id, is_cdc_enabled  
    FROM sys.databases       
    GO
    Et la requête suivante pour afficher les tables qui ont déjà été activés pour CDC:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Use VotreBase 
    Go
    SELECT [name], is_tracked_by_cdc  
    FROM sys.tables 
    Go
    Pour activer les CDC pour toutes les tables référez-vous ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DECLARE @sql nvarchar(4000)
        SET @sql = N'SELECT * FROM cdc.fn_cdc_get_net_changes_dbo_'+cast(@TABLE as varchar)+'(@begin_lsn, @end_lsn, 'all')'
     
     
    EXEC sp_executesql @sql, N'@Table varchar(50), @BeginTime datetime, @EndTime datetime',@Table,@BeginTime,@EndTime
    मैं एक छात्र हूँ |

  3. #3
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    Qu'en est-il des tables qui n'existent pas encore?
    Dans ma base de données, les tables sont créer dynamiquement, donc si j'applique le CDC sur toutes les tables, est ce qu'il va être appliquées sur les prochaines tables qui vont être créer?

    Merci pour ta réponse.

  4. #4
    Membre averti
    Avatar de taibag
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Inde

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2013
    Messages : 214
    Points : 357
    Points
    357
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je pense que ce n'est pas possible, mais tu peux implémenter ça lors de la création de vos table.
    मैं एक छात्र हूँ |

  5. #5
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par taibag Voir le message
    Bonjour,

    Je pense que ce n'est pas possible, mais tu peux implémenter ça lors de la création de vos table.
    Ok merci pour ton aide, dommage que ce n'est pas faisable pour toute la base, je verrais comment je pourrais adapter ça a mon besoin.

    cordialement

  6. #6
    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
    Vous pouvez utiliser un déclencheur DDL qui capture le CREATE/ALTER/DROP TABLE et rajoute, modifie ou supprime des entrées d'audit....

    Ce que je ne comprends pas c'est l'utilité de faire cela sur TOUTES vos tables !
    Quelle est la justification ?

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

  7. #7
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Vous pouvez utiliser un déclencheur DDL qui capture le CREATE/ALTER/DROP TABLE et rajoute, modifie ou supprime des entrées d'audit....

    Ce que je ne comprends pas c'est l'utilité de faire cela sur TOUTES vos tables !
    Quelle est la justification ?

    A +
    Ça a l'air d’être une bonne idée le déclencheur, pouvez vous m'en dire plus?

    Je ne veux pas nécessairement faire ça sur toutes les tables mais sur la BDD, car le principe de dette application est lors de la création d'un objet via l'interface, l'application lui crée une table avec un ID dans la BDD, donc tant que y a pas eu création, je ne connais pas l'intituler de la table, et si je ne connais pas la table, je ne peux pas appliquer le CDC sur cette table.

Discussions similaires

  1. Export (Change Data Capture ou ORA_ROWSCN)
    Par LEK dans le forum Import/Export
    Réponses: 1
    Dernier message: 15/04/2012, 12h14
  2. Change Data Capture - AS400
    Par sandF dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 28/10/2010, 22h01
  3. Talend et Change Data Capture
    Par jonathansauret dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 19/11/2008, 12h18
  4. Firebird et Change Data Capture
    Par jonathansauret dans le forum Firebird
    Réponses: 3
    Dernier message: 10/11/2008, 14h04
  5. mysql version 5 et Change Data Capture
    Par jonathansauret dans le forum MySQL
    Réponses: 0
    Dernier message: 10/11/2008, 13h38

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