OVH Cloud OVH Cloud

Ajout de champs dans une table alors qu'il y une proc. de réplic at

3 réponses
Avatar
CG68
Bonjour,
Soit ma base de données MABASE comprenant une table TYPEMAGAZINE, hébergée
sur SERVEUR1.
Voici la structure de TYPEMAGAZINE :
* Clef primaire : IDTYPEMAG : numeric
* LIBELLETYPEMAG : varchar

Tous les soirs, MABASE est répliqué sur SERVEUR2 via une procédure de
réplication SQL Server.

Je souhaiterais rajouter 2 champs dans ma table TYPEMAGAZINE:
* DATEDEBUTPUBLICATION : datetime, null autorisé
* DATEFINPUBLICATION : datetime, null autorisé

Dans ce cas, cette procédure de réplication impose des contraintes, plus
particulièrement au niveau de la modification de schéma dans la base de
données de publication.
Il faut utiliser les méthodes utiliser par les outils de réplications.

Pour ce faire, je me suis positionné sur la publication à modifier >
propriétés > onglet "Filtrer les colonnes" > selection de la table
"TYPEMAGAZINE" > Ajouter une colonne à la table.

J'ai renseigner le champ N°1 comme suit :
* Nom de colonne : DATEDEBUTPUBLICATION
* Définition de colonne : datetime
De même pour le champ N°2 :
* Nom de colonne : DATEFINPUBLICATION
* Définition de colonne : datetime

Cette manipulation à donc modifier la structure de ma table TYPEMAGAZINE, et
j'ai donc rajouté 2 enregistrement manuellement.

Une fois la réplication achevée (hier soir), j'ai vérifié ce matin
l'historique du travail. Il m'indique "OPERATION REUSSIE", or lorsque je
vérifie la structure/contenu de la table TYPEMAGAZINE sur le SERVEUR2, rien
n'a été répliqué...

Je ne comprend pas... pouvez vous me donner un coup de pouce ?

Peut-être :
- me suis-je trompé dans la définition de colonne pour les 2 champs ?
Devrais-je plutôt mettre "datetime DEFAULT NULL" au lieu de "datetime" ?
- faut-il mettre à jour le client/abonnement côté SERVEUR2 ?

Merci d'avance

3 réponses

Avatar
bruno reiter [MVP]
pour ajouter des colonnes à une table répliquée :
sp_repladdcolumn

br

"CG68" wrote in message
news:
Bonjour,
Soit ma base de données MABASE comprenant une table TYPEMAGAZINE, hébergée
sur SERVEUR1.
Voici la structure de TYPEMAGAZINE :
* Clef primaire : IDTYPEMAG : numeric
* LIBELLETYPEMAG : varchar

Tous les soirs, MABASE est répliqué sur SERVEUR2 via une procédure de
réplication SQL Server.

Je souhaiterais rajouter 2 champs dans ma table TYPEMAGAZINE:
* DATEDEBUTPUBLICATION : datetime, null autorisé
* DATEFINPUBLICATION : datetime, null autorisé

Dans ce cas, cette procédure de réplication impose des contraintes, plus
particulièrement au niveau de la modification de schéma dans la base de
données de publication.
Il faut utiliser les méthodes utiliser par les outils de réplications.

Pour ce faire, je me suis positionné sur la publication à modifier >
propriétés > onglet "Filtrer les colonnes" > selection de la table
"TYPEMAGAZINE" > Ajouter une colonne à la table.

J'ai renseigner le champ N°1 comme suit :
* Nom de colonne : DATEDEBUTPUBLICATION
* Définition de colonne : datetime
De même pour le champ N°2 :
* Nom de colonne : DATEFINPUBLICATION
* Définition de colonne : datetime

Cette manipulation à donc modifier la structure de ma table TYPEMAGAZINE,


et
j'ai donc rajouté 2 enregistrement manuellement.

Une fois la réplication achevée (hier soir), j'ai vérifié ce matin
l'historique du travail. Il m'indique "OPERATION REUSSIE", or lorsque je
vérifie la structure/contenu de la table TYPEMAGAZINE sur le SERVEUR2,


rien
n'a été répliqué...

Je ne comprend pas... pouvez vous me donner un coup de pouce ?

Peut-être :
- me suis-je trompé dans la définition de colonne pour les 2 champs ?
Devrais-je plutôt mettre "datetime DEFAULT NULL" au lieu de "datetime" ?
- faut-il mettre à jour le client/abonnement côté SERVEUR2 ?

Merci d'avance



Avatar
CG68
Merci pour l'info.

Je viens de trouver de la doc sur la commande dont il est question :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sp_repl3_0sku.asp

Par contre il n'y a pas d'exemple, c'est dômmage. Ainsi pourriez vous me
donner un exemple d'utilisation de la commande dans mon cas ?

ça doit être du genre :
sp_repladdcolumn @source_object = 'TYPEMAGAZINE', @column =
'DATEDEBUTPUBLICATION', @typetext = 'datetime DEFAULT NULL',
@publication_to_add = 'nomdutravaildereplication'

Merci d'avance

"bruno reiter [MVP]" wrote:

pour ajouter des colonnes à une table répliquée :
sp_repladdcolumn

br

"CG68" wrote in message
news:
> Bonjour,
> Soit ma base de données MABASE comprenant une table TYPEMAGAZINE, hébergée
> sur SERVEUR1.
> Voici la structure de TYPEMAGAZINE :
> * Clef primaire : IDTYPEMAG : numeric
> * LIBELLETYPEMAG : varchar
>
> Tous les soirs, MABASE est répliqué sur SERVEUR2 via une procédure de
> réplication SQL Server.
>
> Je souhaiterais rajouter 2 champs dans ma table TYPEMAGAZINE:
> * DATEDEBUTPUBLICATION : datetime, null autorisé
> * DATEFINPUBLICATION : datetime, null autorisé
>
> Dans ce cas, cette procédure de réplication impose des contraintes, plus
> particulièrement au niveau de la modification de schéma dans la base de
> données de publication.
> Il faut utiliser les méthodes utiliser par les outils de réplications.
>
> Pour ce faire, je me suis positionné sur la publication à modifier >
> propriétés > onglet "Filtrer les colonnes" > selection de la table
> "TYPEMAGAZINE" > Ajouter une colonne à la table.
>
> J'ai renseigner le champ N°1 comme suit :
> * Nom de colonne : DATEDEBUTPUBLICATION
> * Définition de colonne : datetime
> De même pour le champ N°2 :
> * Nom de colonne : DATEFINPUBLICATION
> * Définition de colonne : datetime
>
> Cette manipulation à donc modifier la structure de ma table TYPEMAGAZINE,
et
> j'ai donc rajouté 2 enregistrement manuellement.
>
> Une fois la réplication achevée (hier soir), j'ai vérifié ce matin
> l'historique du travail. Il m'indique "OPERATION REUSSIE", or lorsque je
> vérifie la structure/contenu de la table TYPEMAGAZINE sur le SERVEUR2,
rien
> n'a été répliqué...
>
> Je ne comprend pas... pouvez vous me donner un coup de pouce ?
>
> Peut-être :
> - me suis-je trompé dans la définition de colonne pour les 2 champs ?
> Devrais-je plutôt mettre "datetime DEFAULT NULL" au lieu de "datetime" ?
> - faut-il mettre à jour le client/abonnement côté SERVEUR2 ?
>
> Merci d'avance
>





Avatar
bruno reiter [MVP]
un ex :

exec sp_repladdcolumn @source_object = 'SITE_Site'
, @column = 'SITE_IntAna'
, @typetext = 'tinyint not null default 0'
, @publication_to_add = 'siege vers mag GEN'



exec sp_repladdcolumn @source_object = 'GRCO_GroupeCollaborateur'
, @column = 'GRCO_TouEns'
, @typetext = 'bit not null default 0'
, @publication_to_add = 'siege vers mag GEN'


br

"CG68" wrote in message
news:
Merci pour l'info.

Je viens de trouver de la doc sur la commande dont il est question :



http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sp_repl3_0sku.asp

Par contre il n'y a pas d'exemple, c'est dômmage. Ainsi pourriez vous me
donner un exemple d'utilisation de la commande dans mon cas ?

ça doit être du genre :
sp_repladdcolumn @source_object = 'TYPEMAGAZINE', @column > 'DATEDEBUTPUBLICATION', @typetext = 'datetime DEFAULT NULL',
@publication_to_add = 'nomdutravaildereplication'

Merci d'avance

"bruno reiter [MVP]" wrote:

> pour ajouter des colonnes à une table répliquée :
> sp_repladdcolumn
>
> br
>
> "CG68" wrote in message
> news:
> > Bonjour,
> > Soit ma base de données MABASE comprenant une table TYPEMAGAZINE,


hébergée
> > sur SERVEUR1.
> > Voici la structure de TYPEMAGAZINE :
> > * Clef primaire : IDTYPEMAG : numeric
> > * LIBELLETYPEMAG : varchar
> >
> > Tous les soirs, MABASE est répliqué sur SERVEUR2 via une procédure de
> > réplication SQL Server.
> >
> > Je souhaiterais rajouter 2 champs dans ma table TYPEMAGAZINE:
> > * DATEDEBUTPUBLICATION : datetime, null autorisé
> > * DATEFINPUBLICATION : datetime, null autorisé
> >
> > Dans ce cas, cette procédure de réplication impose des contraintes,


plus
> > particulièrement au niveau de la modification de schéma dans la base


de
> > données de publication.
> > Il faut utiliser les méthodes utiliser par les outils de réplications.
> >
> > Pour ce faire, je me suis positionné sur la publication à modifier >
> > propriétés > onglet "Filtrer les colonnes" > selection de la table
> > "TYPEMAGAZINE" > Ajouter une colonne à la table.
> >
> > J'ai renseigner le champ N°1 comme suit :
> > * Nom de colonne : DATEDEBUTPUBLICATION
> > * Définition de colonne : datetime
> > De même pour le champ N°2 :
> > * Nom de colonne : DATEFINPUBLICATION
> > * Définition de colonne : datetime
> >
> > Cette manipulation à donc modifier la structure de ma table


TYPEMAGAZINE,
> et
> > j'ai donc rajouté 2 enregistrement manuellement.
> >
> > Une fois la réplication achevée (hier soir), j'ai vérifié ce matin
> > l'historique du travail. Il m'indique "OPERATION REUSSIE", or lorsque


je
> > vérifie la structure/contenu de la table TYPEMAGAZINE sur le SERVEUR2,
> rien
> > n'a été répliqué...
> >
> > Je ne comprend pas... pouvez vous me donner un coup de pouce ?
> >
> > Peut-être :
> > - me suis-je trompé dans la définition de colonne pour les 2 champs ?
> > Devrais-je plutôt mettre "datetime DEFAULT NULL" au lieu de "datetime"


?
> > - faut-il mettre à jour le client/abonnement côté SERVEUR2 ?
> >
> > Merci d'avance
> >
>
>
>