2010-07-29 3 views
1

La procédure sp_addarticle stockée, utilisée pour créer des articles de publication dans SQL Server speak, dispose d'un paramètre @pre_creation_cmd par lequel la suppression de la table ou la troncation des données sur le serveur cible peut être spécifiée pour un instantané . Quelles circonstances sont appropriées pour chacun?La suppression de la réplication SQL Server par rapport aux tables cibles

Répondre

1

@pre_creation_cmd accepte une des quatre valeurs:

  • AUCUN
  • SUPPRIMER
  • DROP
  • TRUNCATE

TABLEAU SUPPRIMER

On suppose que votre article Les données publiées est filtré et que la table correspondante dans l'abonnement reçoit des données provenant d'autres sources , peut-être une autre publication par exemple. L'utilisation de l'opération DELETE pour ce paramètre supprimerait "uniquement" les données répondant aux critères de la définition de filtre, , laissant les données restantes sur l'abonné intact.

TRUNCATE TABLE

supprime toutes les lignes d'une table sans connectant les suppressions de lignes individuelles. TRUNCATE TABLE est similaire à l'instruction DELETE sans clause WHERE; cependant, TRUNCATE TABLE est plus rapide et utilise moins de ressources du système et du journal des transactions .

DROP TABLE

Supprime une ou plusieurs définitions de table et toutes les données, index, des déclencheurs, contraintes, et l'autorisation spécifications pour les tables.

+0

Merci John, dans quelles circonstances une option serait-elle plus avantageuse que l'autre? En supposant qu'il existe une différence pratique, c'est pourquoi je demande. – PMSawyer

+0

TRUNCATE par exemple est considéré comme une opération performante supérieure à DELETE. Vous ne pouvez pas non plus effectuer une opération TRUNCATE sur une table avec des références de clé étrangère. Inversement, ni DELETE ni TRUNCATE ne supprimeront les objets associés à la table tels que les index, ce que l'opération DROP fera. –

+0

Si je comprends bien en termes de réplication si l'on a une table sans références de clés étrangères, utilisez le TRUNCATE parce qu'il fonctionne beaucoup mieux. Sinon, nous supprimons les données et vivons avec la baisse des performances. Merci. – PMSawyer

Questions connexes