Partager via


sp_addscriptexec (Transact-SQL)

S'applique à : SQL Server

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

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @publication = ] N’publication'

Nom de la publication. @publication est sysname, sans valeur par défaut.

[ @scriptfile = ] N’scriptfile'

Chemin d’accès complet au fichier de script SQL. @scriptfile est 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 bit, avec la valeur par défaut 0.

  • 0 = l’agent s’arrête.
  • 1 = l’agent poursuit le script et ignore l’erreur.

[ @publisher = ] N’publisher'

Spécifie un serveur de publication non-SQL Server. @publisher est sysname, avec la valeur par défaut NULL.

@publisher ne doit pas être utilisé lors de la publication à partir d’un serveur de publication SQL Server.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

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

sp_addscriptexec n’est pas utilisé pour la réplication d’instantanés.

Pour l’utiliser sp_addscriptexec, le compte de service SQL Server doit disposer d’autorisations de lecture et d’écriture sur l’emplacement de l’instantané et des autorisations de lecture sur l’emplacement où sont stockés tous les scripts.

L’utilitaire sqlcmd est utilisé pour exécuter le script sur l’Abonné, et le script est exécuté dans le contexte de sécurité utilisé par l’Agent de distribution ou Agent de fusion lors de la connexion à la base de données d’abonnement. Lorsque l’agent est exécuté sur une version précédente de SQL Server, l’utilitaire osql est utilisé au lieu de l’utilitaire sqlcmd.

sp_addscriptexecest utile pour appliquer des scripts aux abonnés et utilise l’utilitaire sqlcmd pour appliquer le contenu du script à l’Abonné. Toutefois, étant donné que les configurations de l’Abonné peuvent varier, les scripts testés avant la publication sur le serveur de publication peuvent encore provoquer des erreurs sur un Abonné. @skiperror permet l’Agent de distribution ou Agent de fusion ignorer les erreurs et continuer. Utilisez l’utilitaire sqlcmd pour tester les scripts avant d’exécuter sp_addscriptexec.

Remarque

Les erreurs ignorées continuent d’être consignées dans l’historique de l’agent pour référence.

L’utilisation sp_addscriptexec d’un fichier de script pour les publications utilisant FTP pour la remise d’instantanés n’est prise en charge que pour les abonnés SQL Server.

autorisations

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