24

Ho creato un progetto di database utilizzando VS 2012. Una volta eseguito il confronto degli schemi, il pulsante di destinazione dell'aggiornamento deve essere abilitato per la sincronizzazione con la destinazione.Pulsante di destinazione dell'aggiornamento disattivato dopo il confronto degli schemi

Ma non viene abilitato. Qualsiasi aiuto, per favore.

Sto utilizzando VS 2012 con sp 3, SQL Server 2012,

enter image description here

+0

Ho creato suggerimento VS UserVoice [Attiva i pulsanti "Aggiorna" e "Genera script di aggiornamento" abilitato] (https: //visualstudio.uservoice.com/forum/121579-visual-studio-ide/suggerimenti/17396128-keep--generate--pulsanti di aggiornamento e di aggiornamento di script-). Si prega di votare se siete d'accordo. –

risposta

39

Check in Elenco errori se avete qualche errore, ho una parola non riconosciuta in VS (ma lo fa in SQL Server), l'ho commentato, ri-comparato ed è stato abilitato con successo.

+2

Questo era il mio problema, ricordati sempre di controllare la finestra Elenco errori! :) Grazie a @FranciscoG – kzfabi

+1

assicurati che la versione di destinazione nelle impostazioni del progetto sia per la versione corretta di SQL Server, quindi non ci dovrebbero essere parole non riconosciute. – cdonner

+1

NB: Sembra che ** eventuali errori ** impediscano la visualizzazione del pulsante UPDATE; anche se sono su oggetti che hai escluso dall'aggiornamento. – JohnLBevan

0

Ogni volta che apri le "opzioni" su "confronto schema" devi cliccare di nuovo sul pulsante "Confronta" per attivare il pulsante "Aggiorna". Tuttavia, se non funziona la prima volta, basta chiudere e riaprire nuovamente il file di confronto dello schema.

9

Verificare se è presente un messaggio di "avviso" che indica "Impossibile generare il piano di implementazione a causa di un errore interno". In tal caso, i pulsanti Aggiorna e Genera script saranno disabilitati.

Chiudere Visual Studio, accedere alla cartella contenente il progetto Database e rimuovere tutti i file (* .dbmdl). Quindi riavviare Visual Studio, rieseguire lo schema di confronto a quel punto il pulsante Aggiorna dovrebbe essere abilitato.

+0

Questa non dovrebbe essere la risposta corretta, ma lo è. Grazie! –

1

Soluzione:

Nel mio caso. L'errore di correzione non era un compito prioritario. Inoltre non ero in grado di trovare alcun errore nella lista degli errori.

Semplicemente non è necessario utilizzare il "Progetto database Visual Studio" in origine o destinazione. Invece di usare il progetto, crea un DataBase temporaneo usando lo script già con te.

Selezionare questo (o questi) database temporaneo (s) in origine e (o) altro nella destinazione.

Il pulsante deve essere abilitato.

Per me la differenza è stata molto più importante della risoluzione del problema. Spero che ti aiuti. Con un po 'più di improvvisazione.

+0

Questa utile risposta potrebbe essere formulata meglio, ma funziona quando nel database ci sono riferimenti ad altri database e, a causa di ciò, vengono generati errori. Quello che Prashant P sta dicendo è invece di confrontare un database su un server con un progetto di database nella soluzione, è possibile utilizzare il progetto di database nella soluzione per creare un database (l'ho creato sull'istanza del server SQL locale) e quindi confrontare i due banche dati. – user2721607

+0

Sì, ma in questo caso, se tutto ciò di cui hai veramente bisogno è il confronto, non hai davvero bisogno del pulsante "Aggiorna" per essere attivo. – KarmaEDV

1

Per me, non c'erano errori visibili nell'elenco errori. Ciò era dovuto al fatto che il menu a discesa "Show Issues Generated" era impostato su "Build Only"; cambiarlo in "Build + IntelliSense" mi ha permesso di vedere gli errori SQL che dovevano essere corretti per abilitare i pulsanti Genera script e Aggiorna.

0

In SSDT avevo il caso in cui il pulsante di aggiornamento era abilitato ma lo script di generazione non era abilitato. Questo perché il mio schema di destinazione era la mia soluzione locale (il progetto * .sqlproj vs).

Ci sono voluti alcuni minuti per rendermi conto che la destinazione doveva essere un vero database per generare correttamente lo script.

Problemi correlati