Partager via


sp_addscriptexec (Transact-SQL)

Publie un script SQL (fichier .sql) sur tous les Abonnés d'une publication. Cette procédure stockée est exécutée au niveau du serveur de publication dans la base de données de publication.

Icône Lien de rubrique Conventions de la syntaxe de Transact-SQL

Syntaxe

sp_addscriptexec [ @publication = ] publication
    [ , [ @scriptfile = ] 'scriptfile' ]
    [ , [ @skiperror = ] 'skiperror' ]
    [ , [ @publisher = ] 'publisher' ]

Arguments

  • [ @publication= ] 'publication'
    Nom de la publication. publication est de type sysname, sans valeur par défaut.

  • [ @scriptfile= ] 'scriptfile'
    Chemin d'accès complet au fichier de script SQL. scriptfile est de type nvarchar(4000), sans valeur par défaut.

  • [ @skiperror= ] 'skiperror'
    Indique si l'Agent de distribution ou de fusion doit s'arrêter lorsqu'une erreur se produit au cours du traitement du script. SkipError est de type bit, avec la valeur 0 par défaut.

    0 = L'Agent s'arrête.

    1 = L'Agent continue d'exécuter le script et ignore l'erreur.

  • [ @publisher= ] 'publisher'
    Spécifie un serveur de publication non Microsoft SQL Server. publisher est de type sysname, avec NULL comme valeur par défaut.

    [!REMARQUE]

    publisher ne doit pas être utilisé pour la publication à partir d'un serveur de publication SQL Server.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

sp_addscriptexec est utilisée dans la réplication transactionnelle et de fusion.

sp_addscriptexec n'est pas utilisée dans la réplication d'instantané.

Pour utiliser sp_addscriptexec, le compte de service SQL Server doit posséder des autorisations en lecture et en écriture sur l'emplacement de l'instantané et des autorisations en lecture sur l'emplacement de stockage des scripts.

L'utilitaire sqlcmd est utilisé pour exécuter le script sur l'Abonné et celui-ci est exécuté dans le contexte de sécurité employé par l'Agent de distribution ou l'Agent de fusion lors de la connexion à la base de données d'abonnement. Lorsque l'agent est exécuté sous une version antérieure de SQL Server, l'utilitaire osql est utilisé à la place de sqlcmd.

sp_addscriptexec utilise sqlcmd pour appliquer efficacement le contenu d'un script à un Abonné. Toutefois, dans la mesure où les configurations des Abonnés peuvent varier, des scripts testés avant la publication sur le serveur de publication peuvent toujours provoquer des erreurs sur un Abonné. Avec skiperror, l'Agent de distribution ou de fusion peut ignorer les erreurs et continuer. Utilisez sqlcmd pour tester les scripts avant d'exécuter sp_addscriptexec.

[!REMARQUE]

Les erreurs ignorées sont toujours consignées dans l'historique de l'Agent à titre de référence.

L'utilisation de sp_addscriptexec pour publier un fichier de script destiné à des publications utilisant FTP pour la remise d'instantané est uniquement prise en charge par les Abonnés Microsoft SQL Server.

Autorisations

Seuls les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent exécuter sp_addscriptexec.

Voir aussi

Tâches

Exécuter des scripts pendant la synchronisation (programmation Transact-SQL de la réplication)

Référence

Procédures stockées système (Transact-SQL)

Concepts

Synchronisez les données