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.
Syntaxe
sp_addscriptexec [ @publication = ] publication
[ , [ @scriptfile = ] 'scriptfile' ]
[ , [ @skiperror = ] 'skiperror' ]
[ , [ @publisher = ] 'publisher' ]
Arguments
[ @publication= ] 'publication'
Nom de la publication. publication est de type sysname et n'a pas de 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 une serveur de publication non Microsoft SQL Server. publisher est de type sysname, avec la valeur par défaut NULL.Notes
publisher ne doit pas être utilisé pour la publication à partir d'un serveur de publication SQL Server.
Valeurs du code 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 de capture instantanée.
Pour utiliser sp_addscriptexec, le compte de service SQL Server doit posséder des autorisations en lecture et en écriture sur l'emplacement de la capture instantanée 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.
Notes
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 de capture instantanée 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.