In general collations can be persuaded to match one another. See my comments at:
Contained DB Collation errorContained DB Collation error
Perhaps the comments on collation, particulary the CATALOG_DEFAULT, may provide you some assistance:
- The database collation is retained, but is only used as the default collation for user data.
- A new keyword, CATALOG_DEFAULT, is available in the COLLATE clause. This is used as a shortcut to the current collation of metadata in both contained and non-contained databases.
For more straightforward collation problems, such as between two databases, a sample query from that discussion is:
select NameValue COLLATE DATABASE_DEFAULT from MyDatabase.Schema.Table
EXCEPT
select NameValue COLLATE DATABASE_DEFAULT from TheirDatabase.Schema.Table
The value of this approach is that you do not need to specify a particular collation, but COLLATE DATABASE_DEFAULT allows you to use the collation of the current database. This would resolve data collation issues.