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
@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.
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
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. –
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