SSDT does not publish column COLLATION change
<p>It seems that SSDT does not publish column COLLATION, even though it detects a change during comparison process.</p>

<p>An issue appears that if you change a column COLLATION on a specific column in a table, and try to publish the change, the SSDT will ignore it when creating a publish script.</p>

<p>Here is a similar issue described on <a href="https://social.msdn.microsoft.com/Forums/en-US/042ec6d6-b212-45fc-bf05-9ecab35bff1a/ssdt-not-publishing-column-collation-change?forum=ssdt" rel="nofollow">msdn forums</a>, detected long ago, that is still reproduced.</p>

<p>I have been using SSDT version 14.0.60629.0
Does the SSDT still have this issue, or is there a valid workaround?</p>

<p><br/>
<b>Update</b>
This issue is  only for the columns which are using a User-Defined Data Type.
<br/>
<b>Update</b>
 (added steps to reproduce, and corrected the question text):</p>

<p>Steps to reproduce: <br/><br/>
1. Start with a database and note the collations<br/>(this is the one I have, a DB on my Dev server):
<br/><br/>
Current COLLATION setup is:</p>

<ul>
<li>Server<br/>SQL_Latin1_General_CP1_CI_AS</li>
<li>Database<br/>SQL_Latin1_General_CP1_CI_AS</li>
<li>Table<br/>SQL_Latin1_General_CP1_CI_AS</li>
<li>User-Defined Data Type (dt_Source AS varchar(20))<br/>SQL_Latin1_General_CP1_CI_AS</li>
<li>Column (Source AS dt_source)<br/>SQL_Latin1_General_CP1_CI_AS</li>
</ul>

<p>2.Then change the database collation.</p>

<pre><code>USE master;
ALTER DATABASE [&lt;db_name&gt;] COLLATE SQL_Latin1_General_CP1250_CS_AS
</code></pre>

<p><br/><br/>
New COLLATION setup will be:</p>

<ul>
<li>Server<br/>SQL_Latin1_General_CP1_CI_AS</li>
<li>Database<br/>SQL_Latin1_General_CP1250_CS_AS</li>
<li>Table<br/>SQL_Latin1_General_CP1250_CS_AS</li>
<li>User-Defined Data Type (dt_Source AS varchar(20))<br/>SQL_Latin1_General_CP1250_CS_AS</li>
<li>Column (Source AS dt_source)<br/>SQL_Latin1_General_CP1_CI_AS</li>
</ul>

<p>Previous column collation (SQL_Latin1_General_CP1_CI_AS) will remain, and SSDT Compare mechanism will not be able to detect any change.<br/></p>

<p>This will lead to an error message, if I try to create a Foreign Key constraint on this column, referencing another, newly populated column, in another table, because the Publish Script from Comparison was built without knowing the true collation.<br/>
For, example, this produces an error, because column collations are different:</p>

<pre><code>ALTER TABLE [FCT].[Inventory] WITH NOCHECK
ADD CONSTRAINT [FK_Inventory_Source] FOREIGN KEY ([Source]) REFERENCES [DIM].[Source] ([SourceCode]);
</code></pre>