When comparing it doesn't recognise the hierarchy if the object is hidden beneath a synonym. This causes issues when deploying a procedure change using the synonym in conjunction with a table definition change to the underlying table in the same deployment.
Steps for reproduction:
Create table
Create synonym on table
Create Procedure using synonym (simple select should do fine)
Deploy
Alter original table by adding a column
Modify proc to look for new column on synonym
Check deploy script generated at this point you should be able to see table change comes in after the procedure change thus columns it is dependant on are not pulled through as build fails altering procedure due to not finding column on table as they haven't yet been applied.
Found in CD pipeline using teamcity but reproduced inside SQL Compare
Steps for reproduction:
Create table
Create synonym on table
Create Procedure using synonym (simple select should do fine)
Deploy
Alter original table by adding a column
Modify proc to look for new column on synonym
Check deploy script generated at this point you should be able to see table change comes in after the procedure change thus columns it is dependant on are not pulled through as build fails altering procedure due to not finding column on table as they haven't yet been applied.
Found in CD pipeline using teamcity but reproduced inside SQL Compare