Question

I have created database project using VS 2012. Once the schema comparison is done, the update target button should be enabled to sync with target.

But it's not getting enabled. Any help plz.

I'm using VS 2012 with sp 3, SQL Server 2012,

enter image description here

Was it helpful?

Solution

Check in Error List if you have any error, I have a non recognized word in VS (but it does in SQL Server), I commented it out, re-compared and it was enabled successfully.

OTHER TIPS

See if you have a "warning" message stating "Cannot generate deployment plan due to an internal error". If so, the Update and Generate Script buttons will be disabled.

Close Visual Studio, navigate to the folder containing the Database project and remove all (*.dbmdl) files. Then restart Visual Studio, re-run the compare schema at which point the Update button should be enabled.

Workaround:

In my case. Fixing Error was not priority task. Also i was not able to find any Error in Error List.

Its just you dont have to use your "Visual Studio Database Project" in source or target. Instead of using project, create a temp DataBase using script already with you.

Select this (or these) temp database(s) in source and (or) other in target.

Button must be Enabled.

For me getting difference was far more important than fixing the issue. Hope it helps you. With some more improvisation.

It seems your database project has sqlcmd variables without default values.

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

Hope this helps.

I couldn't see any errors in Error List, but I could see the errors in the Output tab

enter image description here

the everytime you open the "options" on "schema comparison" you must click on "compare" button again to activate the "update" button. However if it doesn't work at the first time, just close and reopen the Schema comparison file again.

For me, there were no errors visible in the Error List. This was because I had the "Show Issues Generated" drop down was set to "Build Only"; changing it to "Build + IntelliSense" allowed me to see the SQL errors that needed to be fixed to enable the Generate Script and Update buttons.

In SSDT I had the case where the update button was enabled but the generate script was not enabled. This was because my destination schema was my local solution (the *.sqlproj vs project).

It took a few minutes to dawn on me that the destination needed to be a real database to correctly generate the script.

And after all, when you have the available Update Target button and the disabled Generate Script button.

See if your source is a database and your target is your SSDT project.

If so then click "Switch source and target" button.

The Generate Script button will become available.
I.e. a SSDT project must be the source and a database must be the target in the Schema Compare window.

Workaround 2:

In my case, the Update button was greyed out because of there were errors warnings about a view that I created and added to the project earlier. The problem was that the view was scripted to use full database qualified object naming. E.g. [databasename].[schemaname].[objectname], which works fine in SSMS, but causes a problem when it is checked in a DB Project. If you use three part naming for referring an object in same DB project results in a error/warning in Visual Studio.

By changing the code to [schemaname].[objectname] in the definicion of the view removed the error warnings and enable the Update option. Happy days!

Credits: 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

Typically the update button is grayed out when the database objects are available in the separate sql files physically inside the database project but are not included in the database project itself. I simply added those sql scripts into the project and the update button got enabled after comparing the schema.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top