Capture instantanée de publication de fusion échoue avec l’erreur de « Échec de Script » dans SQL Server

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 3179862
Symptômes
Dans SQL Server 2014 ou 2012, vous créez une publication de fusion qui contient une table qui a un type de données geometry ou geography. Pour copier votre index spatial, vous avez défini optiond’index spatiales de copie de l’article trueafin que la fusion va répliquer les index spatiaux. Toutefois, lorsque la capture instantanée s’exécute, elle échoue. Si vous démarrez le moniteur de réplication approfondir l’éditeur et la publication, localisez l’agent de capture instantanée et affichez les détails de l’exécution de la capture instantanée, vous voyez le message d’erreur suivant :


Source : Microsoft.SqlServer.Smo
Site cible : System.Collections.Generic.IEnumerable'1[System.String] ScriptWithList (Microsoft.SqlServer.Management.Smo.DependencyCollection, [] Microsoft.SqlServer.Management.Smo.SqlSmoObject, Boolean)

Message : Échec de Script pour le serveur 'CMSQL'.

Pile : À Microsoft.SqlServer.Management.Smo.Scripter.ScriptWithList (DependencyCollection depList, SqlSmoObject [] objets, Boolean discoveryRequired)

à Microsoft.SqlServer.Management.Smo.Scripter.EnumScriptWithList (SqlSmoObject [] des objets)

à Microsoft.SqlServer.Replication.Snapshot.SmoScriptingManager.ScriptIndexList (scripteur du scripteur, SqlSmoObject [] smoObjectList)

à Microsoft.SqlServer.Replication.Snapshot.MergeSmoScriptingManager.GenerateTableArticleDriScriptWithSingleBatchConstraints (scripteur du scripteur, BaseArticleWrapper articleWrapper, smoTable de Table)

à Microsoft.SqlServer.Replication.Snapshot.MergeSmoScriptingManager.GenerateTableArticleScripts (ArticleScriptingBundle articleScriptingBundle)

à Microsoft.SqlServer.Replication.Snapshot.MergeSmoScriptingManager.GenerateArticleScripts (ArticleScriptingBundle articleScriptingBundle)

à Microsoft.SqlServer.Replication.Snapshot.SmoScriptingManager.GenerateObjectScripts (ArticleScriptingBundle articleScriptingBundle)

à Microsoft.SqlServer.Replication.Snapshot.SmoScriptingManager.DoScripting()

à Microsoft.SqlServer.Replication.Snapshot.SqlServerSnapshotProvider.DoScripting()

à Microsoft.SqlServer.Replication.Snapshot.MergeSnapshotProvider.DoScripting()

à Microsoft.SqlServer.Replication.Snapshot.SqlServerSnapshotProvider.GenerateSnapshot()

à Microsoft.SqlServer.Replication.SnapshotGenerationAgent.InternalRun()

à Microsoft.SqlServer.Replication.AgentCore.Run() (Source : Microsoft.SqlServer.Smo, numéro d’erreur : 0)

Obtenir de l’aide : http://help/0

Source : Microsoft.SqlServer.Smo

Site cible : Le CheckTargetVersion Void (Microsoft.SqlServer.Management.Smo.SqlServerVersionInternal, Microsoft.SqlServer.Management.Smo.SqlServerVersionInternal, System.String)

Message : Erreur d’index spatial [IX_GeographicEntity_Outline]. GEOMETRY_AUTO_GRID et GEOGRAPHY_AUTO_GRID ne sont pas pris en charge dans SQL Server 2008.

Pile : À Microsoft.SqlServer.Management.Smo.SqlSmoObject.CheckTargetVersion (SqlServerVersionInternal targetVersion, SqlServerVersionInternal upperLimit, chaîne exceptionText)

à Microsoft.SqlServer.Management.Smo.Index.SpatialIndexScripter.ScriptIndexDetails (StringBuilder sb)

à Microsoft.SqlServer.Management.Smo.Index.IndexScripter.GetCreateScript()

à Microsoft.SqlServer.Management.Smo.Index.ScriptDdl (les requêtes StringCollection, ScriptingPreferences sp, Boolean notEmbedded, Boolean createStatement)

à Microsoft.SqlServer.Management.Smo.Index.ScriptCreate (les requêtes StringCollection, ScriptingPreferences sp)

à Microsoft.SqlServer.Management.Smo.SqlSmoObject.ScriptCreateInternal (requête de StringCollection, ScriptingPreferences sp, Boolean skipPropagateScript)

à Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptCreateObject (Urn urn, ScriptingPreferences sp, ObjectScriptingType & scriptType)

à Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptCreate (Urn urn, ScriptingPreferences sp, ObjectScriptingType & scriptType)

à Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptCreateObjects (URN IEnumerable 1')

à Microsoft.SqlServer.Management.Smo.ScriptMaker.DiscoverOrderScript (URN IEnumerable 1')

à Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptWorker (URN de List'1, ISmoScriptWriter writer)

à Microsoft.SqlServer.Management.Smo.ScriptMaker.Script (DependencyCollection depList, SqlSmoObject [] objets, rédacteur de ISmoScriptWriter)

à Microsoft.SqlServer.Management.Smo.Scripter.ScriptWithListWorker (DependencyCollection depList, SqlSmoObject [] objets, Boolean discoveryRequired)

à Microsoft.SqlServer.Management.Smo.Scripter.ScriptWithList (DependencyCollection depList, SqlSmoObject [] objets, Boolean discoveryRequired) (Source : Microsoft.SqlServer.Smo, numéro d’erreur : 0)

Obtenir de l’aide : http://help/0

Cause
SQL Server ne gère pas les index spatiaux définis avec les mots clés GEOMETRY_AUTO_GRID ou GEOGRAPHY_AUTO_GRID.

Lorsque vous créez une publication dans SQL Server 2012 ou SQL Server 2014, niveau de compatibilité ascendante de la publication (@publication_compatibility_level) permet de paramètres de valeur 90RTM et 100RTM. Par conséquent, la compatibilité avec SQL Server 2008 est forcée lorsque vous créez une publication de fusion. Mais, en raison de la compatibilité ascendante avec SQL Server 2008, les index spatiaux ne peut pas être copiés.
Contournement
Pour continuer à utiliser ce type de données dans une publication de fusion, utilisez une des solutions suivantes :
  • Définir l’index spatial en utilisant les mots clés GEOMETRY_GRID ou GEOGRPAHY_GRID au lieu de GEOMETRY_AUTO_GRID ou GEOGRAPHY_AUTO_GRID.
  • Lorsque vous définissez la composition, configurez l’article qui est défini avec un index spatial, en définissant l’option de Copie des index spatiaux sur False. Ensuite, une fois les abonnements ont été créés et l’abonnement est initialisé, créer manuellement l’index spatial sur la table de l’abonné.

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 3179862 - Dernière mise à jour : 08/10/2016 22:46:00 - Révision : 1.0

Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Enterprise Core, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Standard

  • kbmt KB3179862 KbMtfr
Commentaires