To Synchronize or To Refresh?

Are you confused too?

Are you wondering what the difference is between the “Refresh” button in “Solution Explorer” and the “Synchronize” button in “Schema View”? Both buttons share the same icon; but they are named differently; are both option doing the same or different things?

So what is the difference?










Schema View – Synchronize

The “synchronize” button, redraws the schema view, which is the logical schema view based on the in-memory schema representation of the sources interpreted; so synchronize refers to synchronization of state between the Solution Explorer and Schema View.

Solution Explorer – Refresh

The “refresh” button, most likely should have been named “reload” since it will remove the schema cache file (<project dir>\<project name>.dat>; recreate the design verification database and reload all the schema fragments from the project (<project name>.dbproj) file.

So “refresh” (or better reload) can be a rather expensive operation; since it will cause a complete reload of all schema objects (reading all files from links from the project file); parse the fragments and execute them against the design validation database.

I hope this explains the difference and when to use them,


Comments (5)

  1. Jeff Lynch says:


    Thanks for clearing this up!


  2. GertD on To Synchronize Or To Refresh? James Manning on OneNote 2007 sharing is indistinguishable…

  3. kefala says:

    Hi Gert,

    Can you elaborate on this design verification database a bit.  I seem to have an issue with a dbproj where doing a "Refresh/Reload" seems to be clearing it up – for the first build.  However, if I simply "Deploy" again right after I get a different result.  In particular, I have a CREATE USER script, a Login script and a RolesAndMemberships script.  

    If I understand the build process correctly, the DB is created, then pre-deployment, objects, post-deployment.

    So in my case it would be

    Create DB, Create Login, Create User, [Create DB Objects], RolesAndMembership.  For some reason, the *current* Create User Script is NOT being included if I don’t do a "Refresh/Reload".  I’m using SourceSafe but all the versions in the db are closer than what is being output.  In case it helps narrow it down better, the difference is consistent and something to this effect:

    Current Script File:

    CREATE USER [resp_user] FOR LOGIN [resp_user] WITH DEFAULT_SCHEMA=[dbo];



    Any ideas?



  4. Data Dude says:

    What happens when you make changes outside the scope of your project? What if you edit a file inside

  5. What the difference is between the &quot;Refresh&quot; button in &quot;Solution Explorer&quot; and the