web-dev-qa-db-fra.com

Le bouton cible de la mise à jour est désactivé après la comparaison du schéma

J'ai créé un projet de base de données à l'aide de VS 2012. Une fois la comparaison de schéma effectuée, le bouton Mettre à jour la cible doit être activé pour se synchroniser avec cible. 

Mais cela ne devient pas activé. Toute aide plz.

J'utilise VS 2012 avec sp 3, SQL Server 2012,

enter image description here

35
Aruna

Vérifiez la liste des erreurs si vous avez une erreur. J'ai un mot non reconnu dans VS (mais c'est le cas dans SQL Server).

53
Francisco G

Vérifiez si vous avez un message d'avertissement indiquant "Impossible de générer le plan de déploiement en raison d'une erreur interne". Si tel est le cas, les boutons Mettre à jour et Générer le script seront désactivés.

Fermez Visual Studio, accédez au dossier contenant le projet de base de données et supprimez tous les fichiers (* .dbmdl). Puis redémarrez Visual Studio, réexécutez le schéma de comparaison, puis activez le bouton Mettre à jour.

8
johnl

Solution de contournement:

Dans mon cas. Erreur de réparation n'était pas une tâche prioritaire. Aussi, je n'ai pas pu trouver d'erreur dans la liste des erreurs.

C'est juste que vous n'avez pas à utiliser votre "Projet de base de données Visual Studio" dans la source ou la cible. Au lieu d'utiliser le projet, créez une base de données temporaire en utilisant un script déjà avec vous. 

Sélectionnez cette (ou ces) base (s) de données temporaire dans source et (ou) autre dans cible. 

Le bouton doit être activé.

Pour moi, faire la différence était bien plus important que résoudre le problème. J'espère que ça vous aide. Avec plus d'improvisation.

2
Prashant P

Il semble que votre projet de base de données comporte des variables sqlcmd sans valeurs par défaut.

Voir: http://www.andrewburrow.net/vs2012-schema-compare-buttons-disabled/

J'espère que cela t'aides.

2
Stanislav

Et après tout, lorsque vous disposez du bouton Update Target et du bouton désactivé Generate Script.

Vérifiez si votre source est une base de données et si votre cible est votre projet SSDT.

Si c'est le cas, cliquez sur le bouton "Basculer source/cible".

Le bouton Generate Script sera disponible.
C'est à dire. un projet SSDT doit être la source et une base de données doit être la cible dans la fenêtre Comparaison de schéma.

0
it3xl

Je ne pouvais voir aucune erreur dans la liste des erreurs, mais je pouvais voir les erreurs dans l'onglet Sortie

 enter image description here

0
Matthew

Dans SSDT, le bouton de mise à jour était activé alors que le script de génération n’était pas activé. En effet, mon schéma de destination était ma solution locale (le projet * .sqlproj vs). 

Il m'a fallu quelques minutes pour comprendre que la destination devait être une véritable base de données pour générer correctement le script.

0
Nick Rubino

chaque fois que vous ouvrez les "options" sur "comparaison de schéma", vous devez cliquer à nouveau sur le bouton "comparer" pour activer le bouton "mettre à jour". Toutefois, si cela ne fonctionne pas la première fois, fermez et rouvrez à nouveau le fichier de comparaison de schémas.

0
Alex Vieira

Pour moi, il n'y avait aucune erreur visible dans la liste des erreurs. En effet, la liste déroulante "Afficher les problèmes générés" était définie sur "Générer uniquement"; le changer en "Build + IntelliSense" m'a permis de voir les erreurs SQL qui devaient être corrigées pour activer les boutons Générer le script et Mettre à jour.

0
Jordan Marr

Solution de contournement 2:

Dans mon cas, le bouton Mettre à jour était grisé à cause des avertissements d'erreur concernant une vue que j'avais créée et ajoutée au projet plus tôt. Le problème était que la vue était scriptée pour utiliser la dénomination complète d'objet qualifié de base de données. Par exemple. [nom_base_de_données]. [nom_chemin]. [nom_objet], qui fonctionne correctement dans SSMS, mais pose un problème lorsqu'il est coché dans un projet de base de données. Si vous utilisez un nom en trois parties pour référencer un objet dans le même projet de base de données, une erreur/un avertissement apparaît dans Visual Studio.

En remplaçant le code par [nom_chemin]. [Nom_objet] dans la définition de la vue, a supprimé les avertissements d'erreur et a activé l'option de mise à jour. Jours heureux! 

Crédits: https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/3577074-allow-three-part-naming-for-referring-a-db-object

https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/17396128-keep-update-and-generate-update-script-buttons

0
Vlad